学习目的:掌握php的流程控制 _/Ay$l;F
0?O_]SD
1、if..else 循环有三种结构 2IGU{&s
s d = bw
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: m)Wq*&,o
Jm"W+! E
if (expr) { statement } D]N)
?TI]0)
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 U} w@,6
s_e*jM1
范例:本例省略大括号。 mc{W\H
*vq75k$7
<?php 7zIfsb
if ($state==1)echo "哈哈" ; eBY/Y6 R
?> y9w,Su2
}w8yYI
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 zL'S5'<F|
N>1d]DrQR
范例:本例的执行部分有三行,不可省略大括号。 ef/43+F^x
>Psq" Xj
<?php a2/Mf
if ($state==1) { fzvyR2 I
echo "哈哈 ; OXn-!J90P
echo "<br>" ; O,S>6o)?
} -)R
=p"-w
?> Oqq'r "S
ze21Uj1x*
hMUUnr"8;i
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 -= izu]Fb,
$1Zr.ERL|(
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 =%s6QFR
<?php NytodVZ'3
if ($state==1) { 1GB]Yi[>
echo "哈哈" ; 16 \)C/*
echo "<br>"; Q>cE G"
} $: |`DCC
else{ GSd:Plc%
echo "呵呵"; \&ki79Ly-
echo "<br>"; AWssDbh/[
} M9m~ck
?> uh \Tf5
u|6-[I
oK$Krrs0&
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 XODp[+xEEt
C
,|9VH
直接看下面的例子 ?<Lm58p8
:"H?phk
<?php g,W34*7=Q
if ( $a > $b ) { L
4Z+8*
echo "a 比 b 大" ; N
Z,} v3
} elseif ( $a == $b ) { PN:`SWP
echo "a 等于 b" ; .k
+>T*c{
} else { radP%W-U
echo "a 比 b 小" ; UBk:B
} _*b`;{3
?> .yFO]
r1aL
KWAd~8,mk
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 oe0YxSauL
Q]3]Z/i
2、 for 循环就单纯只有一种,没有变化,它的语法如下 =1'WZp}D5
bf{_U%`
for (expr1; expr2; expr3) { statement } 9)o@d`*
FK`:eP{
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 zmL
VFGnS
YMU""/(
下例是用 for 循环写的的例子。 v~jm<{={g
iHK.hs;
<?php P#`M8k
for ( $i = 1 ; $i <= 10 ; $i ++) { }pnp._j
echo "这是第".$i."次循环<br>" ; z(
}w|
} -;FAS3(wy
?> ;Krb/qr4_
w5
] lU
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 %Lb
cwh(9
d|9]E&;,
语法如下 c2fSpvz
B& R?{y*
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } 67Qu<9}<-
MNb9 ~kM
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 x$D^Bh,
Aq$1#1J
<?php ,^Q~w
b!{
switch ( date ( "D" )) { %lGOExV%
case "Mon" : .kMnq8u
echo "今天星期一" ; )N607 Fa-
break; @!O(%0
=
case "Tue" : DT)][V^w
echo "今天星期二" ; 8{ =ha
break; ~(huUW
case "Wed" : lSO$Q]!9
echo "今天星期三" ; '
i<4;=M&
break; Un,'a8>V`
case "Thu" : udIm}jRA"
echo "今天星期四" ; -.ZP<,?@F
break; \i@R5v=zL
case "Fri" : .:B>xg~2
echo "今天星期五" ; );6f8H@G
break; ?%Tx%
dB
default: MPy><J
echo "今天放假" ; `Syfl^9B
break; 4z26a
} a?8)47)
?> v+`'%E
R5(([C1
这里需要注意的是break;别遗漏了,default,省略是可以的。 }4H}*P> +
WBkx!{\z
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 r]DU
aR('u:@jHi
今天就说到这里,明天开始说数据库的使用。