3期-Shawn
关注

关注后可及时了解他的动态信息

课程笔记
  • 所属章节课程:PHP流程控制之if语句多种嵌套

    王思总同学我们在最开始的故事中讲到了他有两个秘书:一个生活秘书、一个工作秘书。 王思总同学在出行和项目中也是极度有计划性。他给自己的生活秘书和工作秘书分别指派了出差的行程: 生活上: 先查天气,下雨带雨具和毛巾。不下雨要带防晒霜 雨具、毛巾和防晒霜的情况要提前检查,如果没有要及时买 工作上: 要提前沟通去大连前的工作计划,准备好了要及时检查,检查合格,打印签单。 没有及时准备好的情况下,要列出主要的项目沟通议题。 类似于上面的这种情况判断,我们就需要用到if...elseif...else反复嵌套的结构了。 在if语句中可以嵌套一个或多个if语句,以实现对多个参数的判断,这就是if语句的多种嵌套。其结构形式如下: <?php if(判断1){ if(判断2){ 代码段 1 }else{ 代码段2 } }else{ if(判断3){ 代码段3 }else{ 代码段4 } } ?> 我们把王思总同学的生活要求,我们可以用代码用嵌套结构表示出来。我们使用到了三层嵌套结构,代码如下: <?php //0表示工作秘书,1表示生活秘书 //用代码模拟随机产生当前的工作是生活秘书的还是工作秘书的 $mishu = rand(0,1); if($mishu){ //下雨和不下雨的状态,随机产生 //下雨状态为1 //不下雨状态为0 $xiyu = rand(0,1); if($xiyu){ //是否购买雨伞 $you = rand(0,1); if($you){ echo '下雨天,已购买不用买雨伞'; }else{ echo '下雨天,未购买,需要买雨伞'; } }else{ //是否购买防晒霜 $you = rand(0,1); if($you){ echo '没下雨,有防晒霜'; }else{ echo '没下雨,需要准备防晒霜'; } } }else{ //是否准备好了会议议程 $shifou = rand(0,1); if($shifou){ echo '已准备好,可以随时出发'; }else{ echo '没有准备好,需要打印,延迟出发'; } } 警告:对于编程新手,在使用这种嵌套if...else循环时,请小心使用。因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会导致程序出现莫名其妙的问题。 希望你能够默写出来。并且,不能有一丁点的语法错误。在以后,我们随时用,要在大脑当中立马产生反映,动手就写。

    2018-06-170个赞

  • 所属章节课程:PHP流程控制之for循环控制语句

    王同学反复往返与北京和大连,并且在本上记录往返次数。在PHP中还有另外一种实现方式能够实现同样的计数。 for 循环是 PHP 中的一种计数型循环,它的语法比较数活多变。这是一个必须要掌握的知识点。 for (表达示1; 表达示2; 表达示3){ 需要执行的代码段 } 表达式1 是初始化赋值,可以同时赋值多个代码。 表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 表达示3 在每次循环之后被求值。 我们来写个简单的例子,看看: <?php for ($i = 1; $i <= 10; $i++) { echo '分手后第'.$i.'年,我全都忘了你的样子<br />'; } ?> 换种写法,我们现判断多个条件试试: <?php for($i=0,$j=10;$i<$j;$i++,$j--){ echo $i.'---------'.$j.'<br />'; } ?> 我们用for循环来打一下9*9的乘法口诀表吧,演示效果如下: 2015-08-08/55c5b92de2c2b 在分析思考过程中切记:在代码中是横着输出的 <?php //99乘法口诀表从1开始,所以声明一个变量$i = 1,让$i小于10,也就是最大值为9 for($i = 1 ; $i < 10 ; $i++ ){ //1x1=1,2x2等于4,所以第二次循环的最大值为$i的值,因此$j=1, $j在循环自加的过程当中,只能够小于等于$i for($j=1;$j<=$i;$j++){ // 1 x 2 = 2 2 x 2 = 4啦 echo $j . 'x' . $i . '=' .($i*$j) . '&nbsp;&nbsp;&nbsp;'; } echo '<br />'; } 我们来试一下break,exit和continue来控制一下9*9乘法口诀表。 语句 作用 exit exit之前我们讲过了,从当前处停止后续执行 break 之前遇到过,跳出循环或者跳出结构体执行后续代码 continue 跳出此次循环,下次循环继续 我们来演示一下break和continue: <?php for ($i = 1; $i <= 10; $i++) { if($i == 4){ //待会儿换成continue试试 break; } echo '分手后第'.$i.'年,我全都忘了你的样子<br />'; } ?> $i 等于4,break效果如下: 2015-08-08/55c5bba280e19注:上图中第4之后不再执行 $i 等于4,continue效果如下: 2015-08-08/55c5bbcd4fb1b注:上图中第4第丢失了,接着从第5年继续执行了 作业: 用for 的单层循环来控制隔行变色的表格 用for的双层循环来控制隔行变色的表格 默写99乘法口诀表,并在中间$i、$j的位置实验continue和break;

    2018-06-170个赞

  • 所属章节课程:while循环

    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 />'; }

    2018-06-170个赞