while循环

在循环的开章,我们讲到了循环的逻辑和语法,通过以上的训练。你能轻易的掌握循环的知识点。

while是一个布尔型循环,while(布尔判断)的值为true就执行大括号括起来的代码。如果为假就停出去,执行后续代码。

现在,我们增加一点难道,来做隔行变色。隔行变色,是我们在网页中经常使用到的表现。

要求重点掌握。我们来看看效果:
2015-08-08/55c5b00fcc714

那我们现在要写一个0-99的隔行变色的表格该怎么写呢?【要求默写】

  1. 定义初始值,输出表格标签 和 表格中的列标签
<?php
//定义循环的初始值
$i=0;
echo '<table width="800" border="1">';


while($i<100){
        //输出列0-99的列了
    echo '<td>'.$i.'</td>';
        //一定要加哟,不然死循环了
        $i++;
}

echo '</table>';
?>
  1. 加上行产生的逻辑
<?php
$i=0;
echo '<table width="800" border="1">';

while($i<100){
    //0 - 9 为一行
        //10 -19 为一行
        //因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签
    if($i%10 == 0){
                //为了隔行变色,每20,40,60每行的颜色不同的,因此我们又可以再进行一次取余运算
        if($i%20==0){
            echo '<tr>';
        }else{
            echo '<tr bgcolor="pink">';
        }
    }

    echo '<td>'.$i.'</td>';

    $i++;
        //同理,每一行结束是不是应该有一个</tr>结束标签呢?
    if($i%10==0){
        echo '</tr>';
    }
}
echo '</table>';
?>

以上代码需要多练习,不断的实验才能想象出来。上面的部份,需要默写来锻炼逻辑。

可不可以循环里面再嵌套一次循环(双层循环),来实现隔行变色的表格效果呢?【要求默写】

基本实现逻辑如下

  1. 先输出表格标签
  2. 通过第一层循环再输出行标签
  3. 在第一层循环里面再插入一层循环输出标签
<?php
echo '<table width="800" border="1">';
$i=0;


while($i<10){
    echo '<tr>';

    $j=0;
    while($j<10){

        echo '<td>'.$j.'</td>';
        $j++;

    }
    echo '</tr>';

    $i++;

}
echo '</table>';
?>

上面的代码,你自己加上隔行变色的判断和正常的0-99的数值显示哟?


你可以学完循环后,再学习一些基本的算法。
这样帮助你面试的成功率更高。

注:不要写死循环(没有退出条件的循环)

whie(1){
    echo 1111.'<br />';
}
继续学习
||
<?php $i=0; echo '<table width="800" border="1">'; while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签 if($i%10 == 0){ //为了隔行变色,每20,40,60每行的颜色是不同的,因此我们又可以再进行一次取余运算 if($i%20==0){ echo '<tr>'; }else{ echo '<tr bgcolor="pink">'; } } echo '<td>'.$i.'</td>'; $i++; //同理,每一行结束是不是应该有一个</tr>结束标签呢? if($i%10==0){ echo '</tr>'; } } echo '</table>'; ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

高并发千万级数据库系统解决方案
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
  湮酒

湮酒

有没有久久乘法表的教程 急求

5年前    添加回复 2

回复
雨露

雨露

//这是什么意思啊? if($i%10 == 0)

5年前    添加回复 2

A请叫我包大人

每10个格子 一个<tr></tr>换行

A请叫我包大人 · 2018-09-29 11:01
回复
phpcn_u157022

phpcn_u157022

颜色行数代码放反了。

4年前    添加回复 1

回复
好想胖十斤

好想胖十斤

1-100偶数单元格变色 <?php $i = 1; echo '<table width="800" border="10">'; while($i<=100){ if($i%10==1/*&&$i>1*/){ echo '<tr>'; } if($i%2

2年前    添加回复 0

回复
cloudy

cloudy

<?php echo '<table width="800" border="1">'; $i=0; while($i<10){ echo '<tr>'; $j=0; while($j<10){ if($i==0){ echo '<td >'.$j.'

3年前    添加回复 0

回复
Geek  Boki

Geek Boki

不给换行代码加上'</tr>';也是可以运行,是否说明可以不用加上呢?

3年前    添加回复 0

回复
Geek  Boki

Geek Boki

给换行代码加上'</tr>';也是可以运行,是否说明可以不用加上呢?

3年前    添加回复 0

回复
三明

三明

99 乖法表的核心 if($j<=$i): echo '<td bgcolor="#ccc">'.$j.'*'.$i.'='.$i*$j.'</td>'; else: echo '<td></td>'; endif;

4年前    添加回复 0

回复
三明

三明

$i=1; while($i<10){ echo '<tr>'; $j=1; while($j<10){ if($j<=$i): echo '<td bgcolor="#ccc">'.$j.'*'.$i.'='.$i*$j.'</td>';

4年前    添加回复 0

回复
三明

三明

if($i%2==0): echo '<tr>'; else: echo '<tr bgcolor="#00CC66">'; endif; 不带{}的写法更简明

4年前    添加回复 0

回复
飞奔吧我的小马驹

飞奔吧我的小马驹

<?php echo '<table width="800" border="1">';$i=0;while($i<10){echo '<tr>'; $j=1;while($j<=$i){echo '<td>'.$i.'x'.$j.'='.$i*$j.'</td>'; $j++;} echo

4年前    添加回复 0

回复
飞奔吧我的小马驹

飞奔吧我的小马驹

<?php echo '<table width="800" border="1">'; $i=0; while($i<10){ echo '<tr>'; $j=1; while($j<=$i){ echo '<td>'.$i.'x'.$j.'='.$

4年前    添加回复 0

回复
飞奔吧我的小马驹

飞奔吧我的小马驹

//99乘法表拿去 <?php echo '<table width="800" border="1">'; $i=0; while($i<10){ echo '<tr>'; $j=1; while($j<=$i){ echo '<td>

4年前    添加回复 0

回复
那个..

那个..

<?php $i=1; $j=1; for($i=1;$i<=9;$i++) {echo "<br>"; for($j=1;$j<10;$j++) { echo $i."*".$j.'='.$i*$j; } } ?>

4年前    添加回复 0

回复
修

$x = 1; while($x < 10){ $y = 1; $i = $x; while($i--){ echo $x . 'x' .$y . '=' . $x * $y . ' '; $y++; } echo '<br>'; $x++; }

4年前    添加回复 0

回复

最后的echo '</table>';有什么用呢,没有也能正常显示

[最新 V 的回答]这是W3C标准,同时可以减少Web页面下载时间,代码优化不是通过删除标签来完成的。在PHP中,如果是纯PHP代码一般建议省略?>避免出现不必要的错误。

时间:2年前

为什么我把$i++.删了直接502

[最新 V 的回答]能看看你的代码么

时间:2年前

判断10行有个</tr>结束标签 判断20行那为什么没有</tr>标签呢

[最新 简单 的回答]每10行一个有标签,在每20行一个标签就重复了

时间:3年前

这个例子是错的吧,红色和白色刚好弄反

[最新 U_U 的回答]你把代码复制下来运行一下,和给的图片颜色正好相反,白色和红色翻个个儿

时间:3年前

浮世绘梦

浮世绘梦

while循环

1年前 0

手机用户1576498014

手机用户1576498014

不会啊老哥

2年前 0

AJefferyA

AJefferyA

当$i循环等于1的时候第一个IF判断句$i%10不等于0了,就余1了。下面的第二个if代码是不是就不能运行了?然后直接输出单元格里面$i的数值?

2年前 0

行&走

行&走

<?php echo '<table width="800" border="1">'; $i=0; while($i<10){ echo '<tr>'; $j=0; while($j<10){ if($i%2!=0){ echo '<td bgcolor="pink">'.$i.$j.'</td>'; }else{ // $i=$i??''; echo '<td>'.($i?:'').$j.'</td>'; } $j++; } echo '</tr>'; $i++; } echo '</table>'; ?>

2年前 0

北冥之鲲

北冥之鲲

<?php $i=1; echo '<table width="800" border="1">'; $clo=true; $lieshu=0; while($i<=100){ if($clo==true){ if($lieshu==0){ echo'<tr>'; $lieshu=1; } elseif($lieshu==10){ echo"</tr>"; $clo=false; $lieshu=0; } else{ echo"<td>".$i.'</td>'; $i++; $lieshu++; } } else{ if($lieshu==0){ echo'<tr bgcolor="pink">'; $lieshu=1; } elseif($lieshu==10){ echo"</tr>"; $clo=true; $lieshu=0; } else{ echo"<td>".$i.'</td>'; $i++; $lieshu++; } } } echo"</table>"; ?>

2年前 0

门前人海、

门前人海、

<?php $i=0; echo '<table width="800" border="1">'; while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签 if($i%10 == 0){ //为了隔行变色,每20,40,60每行的颜色不同的,因此我们又可以再进行一次取余运算 if($i%20==0){ echo '<tr>'; }else{ echo '<tr bgcolor="pink">'; } } echo '<td>'.$i.'</td>'; $i++; //同理,每一行结束是不是应该有一个</tr>结束标签呢? if($i%10==0){ echo '</tr>'; } } echo '</table>'; ?>

3年前 0

賢葉

賢葉

<?php echo '<table width="800" border="1">'; $i=0; $color = 'rgb('.rand(0,255).','.rand(0,255).','.rand(0,255).')'; echo $color; while($i<10){ echo '<tr bgcolor='.$color.'>'; $color = 'rgb('.rand(0,255).','.rand(0,255).','.rand(0,255).')'; $j=0; while($j<10){ echo '<td>'.$i.$j.'</td>'; $j++; } echo '</tr>'; $i++; } echo '</table>'; ?>

3年前 0

ʘᴗʘ

ʘᴗʘ

没懂

3年前 0

城南花已开

城南花已开

<?php echo '<table width="800" border="1">'; $i=0; while($i<10){ $j=10*$i; while($j<10*($i+1)){ echo '<td>'.$j.'</td>'; $j++; } if($i%2==0){ echo '<tr bgcolor="blue" />'; }else{ echo '</tr>'; } $i++; } echo '</table>'; ?>

3年前 0

waiting for.

waiting for.

<?php //定义循环的初始值 $i=0; echo '<table width="800" border="1">'; while($i<100){ if($i%10==0) { if($i%20==0) { echo '<tr>'; } else { echo '<tr bgcolor="pink">'; } } echo '<td>'.$i.'</td>'; $i++; if($i%10==0) { echo '<tr>'; } } echo '</table>'; ?>

3年前 0

Jess

Jess

表格框

4年前 0

3期-Shawn

3期-Shawn

while是一个布尔型循环,while(布尔判断)的值为true就执行大括号括起来的代码。如果为假就停出去,执行后续代码。 现在,我们增加一点难道,来做隔行变色。隔行变色,是我们在网页中经常使用到的表现。 要求重点掌握。我们来看看效果: 那我们现在要写一个0-99的隔行变色的表格该怎么写呢?【要求默写】 定义初始值,输出表格标签 和 表格中的列标签 <?php //定义循环的初始值 $i=0; echo '<table width="800" border="1">'; while($i<100){ //输出列0-99的列了 echo '<td>'.$i.'</td>'; //一定要加哟,不然死循环了 $i++; } echo '</table>'; ?>加上行产生的逻辑 <?php $i=0; echo '<table width="800" border="1">'; while($i<100){ //0 - 9 为一行 //10 -19 为一行 //因此,每一行都能够被10求默,如为为10的时候,应该显示行开始的标签 if($i%10 == 0){ //为了隔行变色,每20,40,60每行的颜色不同的,因此我们又可以再进行一次取余运算 if($i%20==0){ echo '<tr>'; }else{ echo '<tr bgcolor="pink">'; } } echo '<td>'.$i.'</td>'; $i++; //同理,每一行结束是不是应该有一个</tr>结束标签呢? if($i%10==0){ echo '</tr>'; } } echo '</table>'; ?> 以上代码需要多练习,不断的实验才能想象出来。上面的部份,需要默写来锻炼逻辑。 可不可以循环里面再嵌套一次循环(双层循环),来实现隔行变色的表格效果呢?【要求默写】 基本实现逻辑如下 先输出表格标签 通过第一层循环再输出行标签 在第一层循环里面再插入一层循环输出标签 <?php echo '<table width="800" border="1">'; $i=0; while($i<10){ echo '<tr>'; $j=0; while($j<10){ echo '<td>'.$j.'</td>'; $j++; } echo '</tr>'; $i++; } echo '</table>'; ?> 上面的代码,你自己加上隔行变色的判断和正常的0-99的数值显示哟? -------------------------------------------------------------------------------- 你可以学完循环后,再学习一些基本的算法。 这样帮助你面试的成功率更高。 注:不要写死循环(没有退出条件的循环) whie(1){ echo 1111.'<br />'; }

4年前 0

那个..

那个..

<?php echo '<table width="800" border="1">'; $i=1; $j=1; for($i=1;$i<=9;$i++) {echo "<br>"; for($j=1;$j<10;$j++) { echo '<td>'.$i."*".$j.'='.$i*$j.'</td>'; } if($i%1 == 0){ //为了隔行变色,每20,40,60每行的颜色不同的,因此我们又可以再进行一次取余运算 if($i%2==0){ echo '<tr>'; }else{ echo '<tr bgcolor="pink">'; } } if($i%10==0){ echo '</tr>'; } } echo '</table>'; ?>

4年前 0

Roney

Roney

<?php echo '<table width="800" border="1">'; $i=0; while($i<1){ $j=0; while($j<100){ if($j%10 == 0){ if($j%20==0){ echo "<tr bgcolor='pink'"; } echo '<tr>'; } echo '<td>'.$j.'</td>'; $j++; if($j%10 == 0){ echo '</tr>'; } } $i++; } echo '</table>'; ?>

4年前 0

博龙

博龙

<?php echo '<table width="800" border="1">'; $i=0; while($i<10){ if($i%2==0){ echo '<tr bgcolor="pink">'; } else{ echo '<tr>'; } $j=0; while($j<10){ echo '<td>'.$j.'</td>'; $j++; } echo '</tr>'; $i++; } echo '</table>'; ?>

4年前 0

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~