PHP学习记录之流程控制

  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 "&nbsp;";
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 ?>

posted @ 2020-02-25 23:54  天青色wy  阅读(123)  评论(0编辑  收藏  举报