流程控制:代码执行的方向
控制分类
顺序结构:代码从上到下,顺序执行(代码执行的最基本结构)
分支结构:给定一个条件,同时有多种可执行代码(块),然后根据条件执行某一段代码
循环结构:在某个条件控制范围内,指定的代码(块)可以重复执行
分支结构:
在php中分支结构主要有两种:if分支和switch分支
if分支,适用于所有的条件判断(分支结构)
单一条件分支结构(if)
<?php
/*
if语句格式如下:
if(表达式) //如果在后面加上;会报错
语句块; //条件成立后会执行的语句
*/
$a = 10;
$b = 20;
if($a < $b)
var_dump("\$a 大于 \$b");
?>
双向条件分支结(else子句)
<?php
/*
else语句是if语句的子句,必须和if一起使用,不能单独存在。else语法格式如下:
if(表达式)
语句块1; //表达式成立执行的语句
else
语句块2; //表达式不成立执行的语句
*/
$a = 10;
$b = 20;
if($a > $b){
var_dump("\$a 大于 \$b");
}else{
var_dump("\$a 小于 \$b");
}
?>
多向条件分支结构(elseif)
<?php
$a = 20;
$b = 20;
if($a > $b){
var_dump("\$a 大于 \$b");
}elseif($a < $b){
var_dump("\$a 小于 \$b");
}elseif($a = $b){
var_dump("\$a 等于 \$b");
}else{
var_dump("\$a 不能和 \$b作比较");
}
?>
多向条件分支语句(switch)
switch分支:有一组情形存在,通过一个条件,通常有多个值,但是每一个值都会有不同的代码要进行。
<?php
$week = date("D");
var_dump($week);
switch($week){
case "Thu" :
var_dump("今天是周四");
break;
default:
var_dump("没有匹配的值");
}
?>
巢状条件分支结构
<?php
/*
巢状条件分支结构就是if语句的嵌套
语法格式如下:
if(表达式1){
if(表达式2){
...
}else{
...
}
}else{
...
}
*/
$sex = "MAN";
$age = "43";
if($sex == "MAN"){
if($age >= "50"){
echo "这位男士已经退休" .($age-50). "年了";
}else{
echo "这位男士已经工作" .(50-$age). "年了";
}
}else{
if($age >= "60"){
echo "这位女士已经退休" .($age-60). "年了";
}else{
echo "这位女士已经工作" .(60-$age). "年了";
}
}
?>
循环结构
while语句
?php
/*
while语句也称为while循环
当条件为真时,它会不断的执行一个语句块,直到条件为假为止
*/
$count = 1;
while($count <= 10){
echo "count被执行的".$count."次<br>";
$count ++;
}
?>
do...while循环
?php
/*
do{
语句块;
}while(表达式);
do...while循环语句保证会执行一次,因为表达式的真值在每次循环结束后检查
*/
$count = 1;
do{
echo "count被执行了".$count."次<br>";
$count ++;
}while($count < 10);
?>
for循环语句
<?php
/*
for语句会将循环次数的变量预先定义好
*/
for ($i = 1; $i<= 9; $i++){
for ($j = 1; $j <= $i; $j++){
echo "$j * $i = ".$j*$i." ";
}
echo "<br>";
}
?>
break语句
<?php
/*
break可以结束当前for,foreach,while,do...while或者switch结构的执行
*/
$i = 0;
while(++$i){
switch($i){
case "5":
echo "变量为5的时候,只退出switch循环<br>";
break 1;
case "10":
echo "变量为10时,不但退出switch循环而且退出while循环<br>";
break 2;
}
}
?>
continue语句
<?php
/*
continue只能用在循环内部,功能是跳出该次循环,继续执行下一次循环
*/
for($i=1; $i<10; $i++){
if($i%2 ==0){
continue;
echo "shs<br>";
}
echo "$i<br>";
}
?>
exit
<?php
/*
exit:当前脚本只要执行到exit语句,不管它在哪个结构中都会直接退出当前脚本
*/
for($i=1; $i<10; $i++){
if($i%2 ==0){
exit;
echo "shs<br>";
}
echo "$i<br>";
}
?>