学习目的:掌握php的流程控制 TS=U%)Ik
J'k^(ZZ
1、if..else 循环有三种结构 8VC%4+.FF
tOo\s&j
第一种是只有用到 if 条件,当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下: ogJ';i/o
([7XtG/?
if (expr) { statement } *,=8x\Shp
VM;vLUu!e
其中的 expr 为判断的条件,通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 ob|^lAU
ocpM6b.fK
范例:本例省略大括号。 ,H$%'s1I(
,&Vir)S
<?php kN 0N18E
if ($state==1)echo "哈哈" ; <5G 4|l
?> ]x%sX|Rj
jc,Qg2
这里特别注意的是,判断是否相等是==而不是=,ASP程序员可能常犯这个错误,= 是赋值。 -av=5hm
n{M-t@r7
范例:本例的执行部分有三行,不可省略大括号。 )d|s$l$?7
#6pJw?[
<?php J2Qt! -
if ($state==1) { h*3{IHAQ
echo "哈哈 ; G+I->n-s4
echo "<br>" ; !:}m-iqQ1
} Deq@T {
?> ^)a j,U[
_'n]rQ'
9XUk.Nek
第两种是除了 if 之外,加上了 else 的条件,可解释成 "若发生了某事则怎样处理,否则该如何解决"。语法如下 b%0@nu4
b7gN|Hw5 H
if (expr) { statement1 } else { statement2 } 范例:上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令,因此不用加上大括号。 b.9[Vf_G
<?php 9`KFJx6D
if ($state==1) { tC.etoh
echo "哈哈" ; !HeQMz
echo "<br>"; 2~vvE
} +&E\w,Vq^
else{ p=|S%
echo "呵呵"; ]!s@FKC{;
echo "<br>"; btbuE
} z<J2e^j
?> SQ'%a-Mct
*Y!RU{w+Z
yf4 i!~
第三种就是递归的 if..else 循环,通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 *<}R=X.
j8^zE,Z
直接看下面的例子 <)Y jVGG
~n(LBA
<?php bkrl>Im<n
if ( $a > $b ) { .
+,{|){c
echo "a 比 b 大" ; CdtCxy5
} elseif ( $a == $b ) { /-(OJN5F^
echo "a 等于 b" ; 6 B7F
} else { mXyg\5
echo "a 比 b 小" ; q%,y66pFr
} !Y/S 2J
?> APCE}%1U
+4Q1s?`
上例只用二层的 if..else 循环,用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时,请小心使用,因为太多层的循环容易使设计的逻辑出问题,或者少打了大括号等,都会造成程序出现莫名其妙的问题。 7;Vmbt9
'?LqVzZI
2、 for 循环就单纯只有一种,没有变化,它的语法如下 -<e_^
/"^XrVi-
for (expr1; expr2; expr3) { statement } +k0UVZZX?
?30pNF|
其中的 expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断,如加一..等等。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 {!! 8 *ix
Ht@5@(W]I
下例是用 for 循环写的的例子。 &!FI!T
-WH
itcM-?
<?php #/\Zo &V8
for ( $i = 1 ; $i <= 10 ; $i ++) { fwa*|y;
echo "这是第".$i."次循环<br>" ; S>Gb
Jt(]
} d@tNlFfS
?> Q!I><u
j(M.7Z7^
3、 switch 循环,通常处理复合式的条件判断,每个子条件,都是 case 指令部分。在实作上若使用许多类似的 if 指令,可以将它综合成 switch 循环。 $bN_0s0:'
Xo6zeLHO
语法如下 -U\s.FI.AR
$+,kibk*R
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } g!)*CP#;
5,\|XQA5!
其中的 expr 条件,通常为变量名称。而 case 后的 exprN,通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 E
5mYFVK
(
efxw
<?php 6y"T;.FAo
switch ( date ( "D" )) { iRM ?_|
case "Mon" : &vfeBth
echo "今天星期一" ; ?=HoU3
break; Wq?vAnLbk
case "Tue" : <oSx'_dc
echo "今天星期二" ; Jyp7+M]
break; p[;@9!t
case "Wed" : 8~O0P=
echo "今天星期三" ; B3I0H6O
break; >LB*5
case "Thu" : z$Qy<_l
echo "今天星期四" ;
1DN
break; jLw|F-v-l<
case "Fri" : -U;=]o1
echo "今天星期五" ; c_aj-`BKp
break; kZR(0,
W
default: dl6Ju
echo "今天放假" ; f=Oj01Ut*
break; .\3gb6S}
} ~K
('t9|
?> t Q.%f:|
HHOqJb{8S
这里需要注意的是break;别遗漏了,default,省略是可以的。 AXv-%k};
)q[Wzx_ j<
很明显的,上述的例子用 if 循环就很麻烦了。当然在设计时,要将出现机率最大的条件放在最前面,最少出现的条件放在最后面,可以增加程序的执行效率。上例由于每天出现的机率相同,所以不用注意条件的顺序。 s%A?B8,
Kp!A
ay
今天就说到这里,明天开始说数据库的使用。