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

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

湮酒

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

6年前    添加回复 2

雨露

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

6年前    添加回复 2

A请叫我包大人

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

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

phpcn_u157022

颜色行数代码放反了。

5年前    添加回复 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

4年前    添加回复 0

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.'

5年前    添加回复 0

Geek Boki

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

5年前    添加回复 0

Geek Boki

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

5年前    添加回复 0

三明

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

5年前    添加回复 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>';

5年前    添加回复 0

三明

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

5年前    添加回复 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

5年前    添加回复 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.'='.$

5年前    添加回复 0

飞奔吧我的小马驹

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

5年前    添加回复 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; } } ?>

6年前    添加回复 0

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

6年前    添加回复 0

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

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

时间:4年前

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

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

时间:4年前

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

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

时间:5年前

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

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

时间:5年前

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