學(xué)習(xí)目的:掌握PHP的流程控制 1、if..else循環(huán)有三種結(jié)構(gòu) 第一種是只有用到if條件,當(dāng)作單純的判斷。解釋成“若發(fā)生了某事則怎樣處理”。語(yǔ)法如下: if (expr) { statement } 其中的expr為判斷的條件,通常都是用邏輯運(yùn)算符號(hào)當(dāng)判斷的條件。而statement為符合條件的執(zhí)行部分程序,若程序只有一行,可以省略大括號(hào) {}。 范例:本例省略大括號(hào)。
這里特別注意的是,判斷是否相等是==而不是=,ASP程序員可能常犯這個(gè)錯(cuò)誤,=是賦值。 范例:本例的執(zhí)行部分有三行,不可省略大括號(hào)。
第二種是除了if之外,加上了else的條件,可解釋成“若發(fā)生了某事則怎樣處理,否則該如何解決”。語(yǔ)法如下: if (expr) { statement1 } else { statement2 } 范例:上面的例子來(lái)修改成更完整的處理。其中的else由于只有一行執(zhí)行的指令,因此不用加上大括號(hào)。
第三種就是遞歸的if..else循環(huán),通常用在多種決策判斷時(shí)。它將數(shù)個(gè)if..else拿來(lái)合并運(yùn)用處理。 直接看下面的例子:
上例只用二層的if..else循環(huán),用來(lái)比較a和b兩個(gè)變量。實(shí)際要使用這種遞歸if..else循環(huán)時(shí),請(qǐng)小心使用,因?yàn)樘鄬拥难h(huán)容易使設(shè)計(jì)的邏輯出問(wèn)題,或者少打了大括號(hào)等,都會(huì)造成程序出現(xiàn)莫名其妙的問(wèn)題。 2、for循環(huán)就單純只有一種,沒(méi)有變化,它的語(yǔ)法如下: for (expr1; expr2; expr3) { statement } 其中的expr1為條件的初始值。expr2為判斷的條件,通常都是用邏輯運(yùn)算符號(hào)(logical operators)當(dāng)判斷的條件。expr3為執(zhí)行statement后要執(zhí)行的部份,用來(lái)改變條件,供下次的循環(huán)判斷,如加一..等等。而statement為符合條件的執(zhí)行部分程序,若程序只有一行,可以省略大括號(hào) {}。 下例是用for循環(huán)寫(xiě)的的例子:
3、switch循環(huán),通常處理復(fù)合式的條件判斷,每個(gè)子條件,都是case指令部分。在實(shí)作上若使用許多類(lèi)似的if指令,可以將它綜合成switch循環(huán)。 語(yǔ)法如下: switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } 其中的expr條件,通常為變量名稱(chēng)。而case后的exprN,通常表示變量值。冒號(hào)后則為符合該條件要執(zhí)行的部分。注意要用break跳離循環(huán)。
這里需要注意的是break;別遺漏了,default,省略是可以的。 很明顯的,上述的例子用if循環(huán)就很麻煩了。當(dāng)然在設(shè)計(jì)時(shí),要將出現(xiàn)機(jī)率最大的條件放在最前面,最少出現(xiàn)的條件放在最后面,可以增加程序的執(zhí)行效率。上例由于每天出現(xiàn)的機(jī)率相同,所以不用注意條件的順序。 今天就說(shuō)到這里,明天開(kāi)始說(shuō)數(shù)據(jù)庫(kù)的使用。 |