1 <?php 2 3 // 流程控制 4 5 // 分支结构:if和switch 6 // if语句 7 // 单分支 8 if (condition) 9 { 10 # code... 11 } 12 13 //双分支 14 if (condition) 15 { 16 # code... 17 } 18 else 19 { 20 21 } 22 23 //多分支 24 if (condition) 25 { 26 # code... 27 } 28 elseif (condition) 29 { 30 # code... 31 } 32 elseif (condition) 33 { 34 # code... 35 } 36 else 37 {} 38 39 //switch分之 40 //switch 语句类似于具有同一个表达式的一系列 if 语句。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。 41 42 // 仅当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句,直到 switch 的程序段结束或者遇到第一个 break 语句跳出分支为止。如果不在 case 的语句段最后写上 break 的话,PHP 将继续执行下一个 case 中的语句段。当所有的case值都不与switch中的值相等时,将执行default语句。 43 // 上面所谓的相等指的是模糊相等==,而不是严格相等===。 44 $a = null; 45 switch ($a) 46 { 47 case 66: 48 echo "<br>值是:66"; 49 // break; 50 case false: 51 echo "<br>值是:false"; //模糊相等 52 break; 53 case 88: 54 55 default: 56 echo "<br>值是:其他"; 57 } 58 59 60 //循环结构 61 62 // while循环 63 64 $a=1; //循环变量的初始化 65 $s=0; 66 while ($a <= 10) //条件 67 { 68 $s += $a; //操作 69 $a++; //循环变量的改变,通常写在循环体的最后位置 70 } 71 72 echo "和为$s"; //55 73 74 75 // do while循环 76 // do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查)。 77 /* 78 do 79 { 80 #循环体语句; // 一定会执行 81 } 82 while (条件判断); 83 */ 84 85 // for循环 86 87 88 // for (expr1; expr2; expr3) 89 // statement 90 91 // 第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。 92 93 // expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。 94 95 // expr3 在每次循环之后被求值(并执行)。 96 97 // 每个表达式都可以为空或包括逗号分隔的多个表达式。 98 99 $sum=0; 100 for ($a=1; $a <= 100 ; $a++) { 101 if ($a%7 == 0) 102 { 103 $sum += $a; 104 } 105 } 106 echo $sum; //735 107 echo "<br>"; 108 109 110 //循环嵌套 111 //输出九九乘法表 112 113 for ($i=1; $i <= 9; $i++) 114 { 115 for ($j=1; $j < $i+1; $j++) 116 { 117 echo "{$j} x {$i} = ".($j*$i)." "; 118 } 119 echo "<br>"; 120 } 121 122 //公鸡5元一只,母鸡3元一只,小鸡1元三只,100元买100只鸡,有多少种组合? 123 124 for ($gj=0; $gj <= 100/5; $gj++) 125 { 126 for ($mj=0; $mj <= (100-$gj*5)/3 ; $mj++) 127 { 128 $xj = 100 - $gj -$mj; 129 if($gj+$mj+$xj==100 && $gj*5+$mj*3+$xj/3==100) 130 { 131 echo "<br>公鸡:$gj 只,母鸡:$mj 只,小鸡:$xj 只"; 132 } 133 } 134 } 135 /*结果为: 136 公鸡:0 只,母鸡:25 只,小鸡:75 只 137 公鸡:4 只,母鸡:18 只,小鸡:78 只 138 公鸡:8 只,母鸡:11 只,小鸡:81 只 139 公鸡:12 只,母鸡:4 只,小鸡:84 只 140 141 */ 142 143 //输出金字塔图案 144 echo "<br>金字塔图案<br>"; 145 /* 146 147 148 * 149 *** 150 ***** 151 ******* 152 153 */ 154 $n=10; 155 for ($i=1; $i <= $n; $i++) 156 { 157 for ($j=1; $j <= $n-$i;$j++) { 158 echo " "; 159 } 160 for ($k=1; $k <= $i*2-1;$k++) { 161 echo "*"; 162 } 163 echo "<br>"; 164 } 165 166 167 //break 中断循环 168 //break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行。 169 170 // break 可以接受一个可选的数字参数来决定跳出几重循环。 171 for ($i=0; $i < 10 ; $i++) { 172 for ($j=0; $j < 10; $j++) { 173 echo "hahah"; 174 break 2; //退出外围的2层循环 175 } 176 } 177 178 //continue 跳出循环 179 //continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环。 180 // 181 echo "<br>"; 182 for ($i=0; $i < 10 ; $i++) { 183 echo "<br>hehe"; 184 continue ; // 也可以带参数 185 for ($j=0; $j < 10; $j++) { 186 echo "<br>hahah"; 187 188 } 189 } 190 191 192 ?>