流程控制
流程控制, 就是要了解 代码的执行顺序
根据执行顺序的不同, 形成不同的代码结构: 顺序结构
、分支结构
、循环结构
顺序结构 默认情况下, 程序代码都是从上往下的一条接着一条执行的. 称为顺序结构
单分支结构
<?php
$a = 5;
if ( $a < 7 ) {
..... 如果$a真的小于7, 这个条件成立, 执行这里面代码
}
..... 这里以后的代码 总会被执行
?>
双分支结构
<?php
if ( 条件表达式 ) {
.... 真区间 // 条件表达式为 真 执行这里
} else {
.... 假区间 // 条件表达式为 假 执行这里
}
/* 二选一, 总会有一个被执行 */
?>
多分支结构1 if…else if…else
<?php
if ( 条件1 ) {
.... 条件1 为真 执行这里代码, 为假 继续判断下面的条件
} else if ( 条件2 ) {
.... 条件2 为真 执行这里代码, 为假 继续判断下面的条件
} else if ( 条件3 ) {
.... 条件3 为真 执行这里代码, 为假 继续判断下面的条件
} else {
.... 上面的条件全部为假 就执行这里
}
?>
实例:
<?php
$score = 85; // 考试成绩为85分
if ($score >= 90 && $score <= 100) {
echo '优秀';
} else if ($score >= 80 && $score < 90) {
echo '良好';
} else if ($socre >= 70 && $score < 80) {
echo '中等';
} else if ($score >= 60 && $socre < 70) {
echo '极格';
} else {
echo '不及格';
}
?>
多分支结构2 switch() … case
<?php
switch(表达式){
case 值1: 要执行的语句; break;
case 值2: 要执行的语句; break;
case 值3: 要执行的语句; break;
default:
没有匹配到的时候执行这里;
}
/*
1) 表达式的值 与 case后面的值做匹配, 匹配到哪个值就执行哪个值后面的语句;
2) 如果匹配到了值1, 执行后面的代码, break中止执行,跳出多分去结构,执行后续语句
3) 如果没匹配到, 执行 default 后的语句做为默认值
*/
?>
循环结构 for
<?php
for($i = 0; $i < 100; $i++) {
...每循环一次,这里面的代码就被执行一次;
}
.... 重复执行100之后, 再继续自上而上,执行这里
/*
for( 初始条件; 判断条件; 改变条件变量 ) {
要重复执行的代码
}
$i = 0 初始条件
$i < 100 判断条件
$i++ 改变条件变量
*/
?>
执行顺序
1) 初始条件
2) 判断条件,
如果为真, 执行循环体 (要重复的代码)
如果为假, 跳过循环,执行后面代码
3) 改变条件变量
4) 判断条件 返回第2步
循环结构 while
<?php
$i = 0; // 初始条件
while( $i < 100 ){ // 判断条件
.... 要重复执行的代码
$i++; // 改变条件变量
}
?>
循环结构 do…while
<?php
$i = 0; // 初始条件
do{
.... 要重复执行的代码
$i++; // 改变条件变量
}while( $i < 100 ); // 判断条件 注意: 后边必须要有分号
?>
上面这种循环结构, 代码至少执行一次.
break 让整个循环结束
<?php
for($i = 0; $i < 100; $i++){
if ( $i == 20 ) {
break; // 当$i等于20的时候, 停止循环, 跳到第10行, 继续往下执行
}
.... 其它代码
}
.... 循环后面的代码
?>
continue 只结束当前这一次循环
<?php
for($i = 0; $i < 100; $i++){
if ( $i == 20 ) {
continue; // 当$i等于20的时候, 这次循环就不往下执行了,提前结束. 然后继续循环.
}
.... 要重复执行的代码 因为 continue 这里会少执行一次
}
?>