第5章PHP中的流程控制语句烟台南山学院软件工程学院第5章PHP中的流程控制本章主要内容PHP中的if判断PHP中的switch…case判断PHP中的while循环PHP中的for循环流程控制综合运用实例第5章PHP中的流程控制if…else判断if…else判断语句有以下3种形式:简单的if判断除了if之外,加上了else分支递归的if…elseif…else多重判断,通常用在多种决策判断中第5章PHP中的流程控制简单的if判断基本格式:if(expr){statement}只对判断结果为真时执行操作如果statement语句只有一句,可省略大括号?php$val1=36;$val2=12;if($val1$val2){echo“因为val1=”.$val1.“,;echo“而val2=.$val2.br;echo“所以val1大于val2.br;}??php//$cost=102;if($cost100)echo太贵了,不买!;?第5章PHP中的流程控制if…else判断基本格式:if(expr){statement}else{statement}判断结果为真时执行if语句,为假时执行else语句?php$cost=102;if($cost100)echo太贵了,不买!;elseecho还挺便宜的,就买它吧!;?第5章PHP中的流程控制if…elseif…else多重判断基本格式:if(expr){statement}elseif(expr){statement}…else{statement}递归的if…elseif…else多重判断,通常用在多种决策判断中。?php$val1=12;$val2=36;if($val1$val2)echoval1大于val2.br;elseif($val1==$val2)echoval1等于val2.br;elseechoval1小于val2;?第5章PHP中的流程控制switch…case多重判断switch循环用于把同一个变量或表达式与很多不同的值比较,并根据其值来执行不同的代码的情况。格式为:switch(expr){caseexpr1:statement1;break;caseexpr2:statement2;break;…default:statementn;break;}expr通常是变量名,case后的exprN通常为变量的值,statementN为符合该值时执行的语句,语句超过一条也无需加大括号。使用break跳出过程。第5章PHP中的流程控制?phpswitch(date(D)){caseMon:echo星期一;break;caseTue:echo星期二;break;caseWed:echo星期三;break;caseThu:echo星期四;break;caseFri:echo星期五;break;default:echo周末;break;}?练习:请将本程序改写成if…else语句。比较他们的优缺点。第5章PHP中的流程控制while循环while循环用来在指定的条件内,不断地重复步骤。格式:while(expr){statement}如果程序只有一行,则可以省略大括号“{}”。多行情况也可以不用大括号,单末尾要使用endwhile结束。?php$i=1;while($i=10){print$i++;print;}printbr;$i=1;while($i=10):print$i;$i++;endwhile;print;??php$i=1;while($i10){echo第.$i.次循环;echobr;$i++;}?第5章PHP中的流程控制使用break跳出循环break负责结束当前for、foreach、while、do…while或者switch结构的执行。?php$i=0;while(++$i){switch($i){case4:print当前i的值为4.br;break;case8:print当前i的值为8.br;break2;default:echo当前i的值不是4和8.br;break;}}??php$i=1;while($i10){echo第.$i.次循环;echobr;$i++;if($i==9)break;}?第5章PHP中的流程控制使用continue语句continue用来跳过本次循环中剩余的代码并开始执行下一次循环。?php$i=0;while($i10){$i++;if($i==5)continue;echo第.$i.次循环;echobr;}??php$i=0;while($i++5){echoOuterbr;while(1){echo Middlebr;while(1){echo Innerbr;continue3;//改为2行吗?1呢?}//break2;呢echoThisnevergetsoutput.br;}echoNeitherdoesthis.br;}?第5章PHP中的流程控制do…while循环do…while循环和while循环非常相似。区别在于表达式的值是在每次循环结束时检查而不是开始时。格式为:do{statement}while(expr)?php$i=1;do{print$i++;print;}while($i=10)??php$i=1;do{echo第.$i.次循环;echobr;$i++;}while($i1)?思考:若条件改为$i10,结果如何?并总结do…while与while循环在给定条件一致的情况下,何时结果相同,何时结果不同。第5章PHP中的流程控制for循环for循环是PHP中最复杂的循环结构。格式为:for(expr1;expr2;expr3)statement;expr1在循环开始前无条件执行一次。expr2在每次循环开始前求值,如果其值为True,则继续循环执行statement语句;如果其值为False,则终止循环。expr3在每次循环之后被执行。每个表达式都可以为空。expr2为空意味着将无限循环下去,PHP认为其值为True。注意:for循环与while循环的互相转换第5章PHP中的流程控制?phpfor($i=1;$i=10;$i++)echo$i.;echobr;for($i=1;;$i++){if($i10)break;echo$i.;}echobr;$i=1;for(;;){if($i10)break;echo$i++.;}echobr;for($i=1;$i=10;)echo$i++.;??phpfor($i=1;$i10;$i++){echo第.$i.次循环br;}?与程序5-5.php进行比较,并将作业3的第2题,用for循环完成。第5章PHP中的流程控制foreach循环foreach循环主要用于遍历数组和对象。有时会明显for语句。foreach语句的第一种格式:foreach语句的第二种格式:foreach只能对数组和对象遍历,不能根据条件表达式来处理循环。$arr=array();foreach($数组名as$item){echo$item;}foreach($数组名as$变量1=变量2){…}第5章PHP中的流程控制?php$links=array();echobPHP在线资源/b:br/;foreach($linksas$link){echoahref=\http://$link\$link/abr/;}??php$stu=array(chinese=80,english=73,math=45);foreach($stuas$subject=$score){echo您的分数:$subject=$scorebr;}?第5章PHP中的流程控制流程控制综合运用实例?php$type=array(0=array(学生用书,学生教材,教辅用书,课外读物,考试题集),1=array(名著,中国古典,世界名著,英文原著),2=array(考试用书,公务员,会计师,医药师),3=array(儿童读物,看图识字,动漫人物),4=array(武侠小说,金庸小说,古龙小说,玄幻小说));echotableborder=\1\;for($i=0;$icount($type);$i++)for($j=0;$jcount($type[$i]);$j++){if($j==0)echotrtdbgcolor=\#cccc00\.$type[$i][$j]./td;elseif($j=count($type[$i])){echotdbgcolor=\#ccccff\;echo$type[$i][$j];echo/td;}elseif($jcount($type[$i])&&$j5)echotdbgcolor=\#cc0000\ /td;//在后面添加空表格if($j==4)echo/tr;}?第5章PHP中的流程控制小结本章的主要内容:if判断switch…case多重判断while循环、do…while循环for循环应掌握PHP流程控制只是,为编写大型程序奠定坚实的基础。