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 ?>