学习目的:掌握php的流程控制 G~ LQM
{Ppb ;
1、if..else 循环有三种结构 7U^{xDg.b
N(3Bzd)
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: kDxI7$]E
EBiLe;=X
if (expr) { statement } Z
O+/{[9s
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。
$&1D l
3to!C"~\K-
范例:本例省略大括号。 J^S!GG'gb
kD7'BP/#
<?php _18Z]XtX
if ($state==1)echo "哈哈" ; 5NhAb$q2Y
?> qq3/K9 #y
W39J)~D^@
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 6q!Q([D_
o6:bmKWE
范例:本例的执行部分有三行,不可省略大括号。 ] SLeWs
AEDBr <
<?php 6y57m;JW/
if ($state==1) { (ti!Y"e2
echo "哈哈 ; d|)ARRW
echo "<br>" ; #p]V?
} uy~$
:0o
?> IKaW],sr#
=e0MEV#s.
C' {B
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 -$Kc"rX
N9s.nu
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 qk>SM|{
<?php yeBfzKI{b
if ($state==1) { XsDZ<j%x89
echo "哈哈" ; Ts3!mjn
echo "<br>"; 7oc Ng
} "]Uj _d
else{ Bjj=UtI
echo "呵呵"; ~)[pL(4
echo "<br>"; 2oOos%0
} IXlk1tHN4I
?> BE],PCpPr
0c1=M|2
8~~ k?
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 ,-8Xb+!8I
y?A*$6
直接看下面的例子 b\zq,0%
2(Yg',aMY-
<?php )?$@cvf
if ( $a > $b ) { AK%&Kq&PaY
echo "a 比 b 大" ; cLvnLaA}
} elseif ( $a == $b ) { lj:.}+]r
echo "a 等于 b" ; w=: c7Y+
} else { p#-=mXE/2
echo "a 比 b 小" ; eibkG
} a=x&sz\x
?> dmcY]m
"%S-(ue:
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 VUP.
\Vry
VS_\bIC
2、 for 循环就单纯只有一种,没有变化,它的语法如下 q?)5yukeF
TU6YS<
for (expr1; expr2; expr3) { statement } aY;34SF
"gzn%k[D9m
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 vu}U2 0@
!0UfX{.
下例是用 for 循环写的的例子。 1zw,;m n
tFX<"cAvK
<?php #3eI4KJ4+l
for ( $i = 1 ; $i <= 10 ; $i ++) { E>gLUMG$
echo "这是第".$i."次循环<br>" ; A7&/3C6{H
} p!)tA
?> "Mv^S'?>
q[}re2
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 2V$Jn8v,`{
Ey%[t
语法如下 .sOZ "=tW
&5sPw^{,H
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } dM19;R@4
bY*_6SPK4
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 |id7@3leu
oHp"\Z&
<?php /v|b]Ji
switch ( date ( "D" )) { lw?C:-m
case "Mon" : %[ *+
echo "今天星期一" ; (~! @Uz5
break; m^0 I3;
case "Tue" : C8YStT
echo "今天星期二" ; t6kLZ
break; TDy)A2Z
case "Wed" : )56L`5#tS
echo "今天星期三" ; gp~-n7'~O
break; O U9{Y9e
case "Thu" : r2PN[cLu|
echo "今天星期四" ; (2"4PU8
break; 9&<c)sS&B
case "Fri" : DT6BFx
echo "今天星期五" ; $Fy~xMA8O
break; _ Qek|>
default: ,I+O;B:0
echo "今天放假" ; kK
5~hpv
break; \IzZJGi
} !U(KQ:j
?> '%:E4oI
{ehYE ^%N
这里需要注意的是break;别遗漏了,default,省略是可以的。 S$R=!3* "V
eb,QT\/G
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 eI|~neh
+iQ~ Y2Gh
今天就说到这里,明天开始说数据库的使用。