php基礎控制結構執行個體詳解

來源:互聯網
上載者:User
控制結構

如果我們希望有效地相應使用者的輸入,代碼就需要具有判斷能力。能夠讓程式進行判斷的結構稱為條件。

1、if..else迴圈有三種結構
第一種是只有用到if條件,當作單純的判斷。解釋成“若發生了某事則怎樣處理”。文法如下:
if (expr) { statement }
其中的expr為判斷的條件,通常都是用邏輯運算子號當判斷的條件。而statement為合格執行部分程式,若程式只有一行,可以省略大括弧 {}。
範例:本例省略大括弧。

<?php if ($state==1)echo "哈哈" ; ?>

這裡特別注意的是,判斷是否相等是==而不是=,ASP程式員可能常犯這個錯誤,=是賦值。
範例:本例的執行部分有三行,不可省略大括弧。

<?php if ($state==1) { echo "哈哈 ; echo "<br>" ; } ?>

第二種是除了if之外,加上了else的條件,可解釋成“若發生了某事則怎樣處理,否則該如何解決”。文法如下:
if (expr) { statement1 } else { statement2 }
範例:上面的例子來修改成更完整的處理。其中的else由於只有一行執行的指令,因此不用加上大括弧。

<?php if ($state==1) { echo "哈哈" ; echo "<br>"; } else{ echo "呵呵"; echo "<br>"; } ?>

第三種就是遞迴的if..else迴圈,通常用在多種決策判斷時。它將數個if..else拿來合并運用處理。
直接看下面的例子:

<?php if ( $a > $b ) { echo "a 比 b 大" ; } elseif ( $a == $b ) { echo "a 等於 b" ; } else { echo "a 比 b 小" ; } ?>

上例只用二層的if..else迴圈,用來比較a和b兩個變數。實際要使用這種遞迴if..else迴圈時,請小心使用,因為太多層的迴圈容易使設計的邏輯出問題,或者少打了大括弧等,都會造成程式出現莫名其妙的問題。

2、for迴圈就單純只有一種,沒有變化,它的文法如下:
for (expr1; expr2; expr3) { statement }
其中的expr1為條件的初始值。expr2為判斷的條件,通常都是用邏輯運算子號(logical operators)當判斷的條件。expr3為執行statement後要執行的部份,用來改變條件,供下次的迴圈判斷,如加一..等等。而statement為合格執行部分程式,若程式只有一行,可以省略大括弧 {}。
下例是用for迴圈寫的的例子:

<?php for ( $i = 1 ; $i <= 10 ; $i ++) { echo "這是第".$i."次迴圈<br>" ; } ?>

3、switch迴圈,通常處理複合式的條件判斷,每個子條件,都是case指令部分。在實作上若使用許多類似的if指令,可以將它綜合成switch迴圈。
文法如下:
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
其中的expr條件,通常為變數名稱。而case後的exprN,通常表示變數值。冒號後則為符合該條件要執行的部分。注意要用break跳離迴圈。

<?php switch ( date ( "D" )) { case "Mon" : echo "今天星期一" ; break; case "Tue" : echo "今天星期二" ; break; case "Wed" : echo "今天星期三" ; break; case "Thu" : echo "今天星期四" ; break; case "Fri" : echo "今天星期五" ; break; default: echo "今天放假" ; break; } ?>

這裡需要注意的是break;別遺漏了,default,省略是可以的。
很明顯的,上述的例子用if迴圈就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程式的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.