<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] # 上節回顧 * PHP中變量的數據類型都有哪些? * 常量的聲明和應用? * PHP中的運算符號都有哪些? # 分支結構 > 任何 PHP 腳本都是由一系列語句構成的。一條語句可以是一個賦值語句,一個函數調用,一個循環,甚至一個什么也不做的(空語句)條件語句。語句通常以分號結束。此外,還可以用花括號將一組語句封裝成一個語句組。語句組本身可以當作是一行語句。本章講述了各種語句類型。 在任何一門程序設計語言中,都需要支持滿足程序結構化所需要的三種基本結構: * 順序結構 * 分支結構(選擇結構) * 循環結構 順序結構:在程序結構中,最基本的就是順序結構。程序會按照自上而下的順序執行。 *** ###### 單一條件分支結構(if) 基本格式: ``` if(條件表達式){ 語句組; //語句組為單條語句時可省略“{ }”。 } ``` ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-ef8e42265f92b5ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 當條件表達式的值為真(true)時,PHP將執行語句組,相反條件表達式的值為假(false)時,PHP將不執行語句組,忽略語句組執行下面的語句。 ``` <?php if ($a > $b) echo "a 大于 b"; //如果變量a的值大于b的值則會輸出:a大于b $x=10; $y=20; if($x<$y){ //判斷是否x小于y。多條語句需要使用{ }括起來。 $t=$x; $x=$y; $y=$t; } var_dump($x>$y); //輸出:bool(true) ?> ``` ###### 雙向條件分支結構(else從句) 格式如下 ``` if(條件表達式){ 語句組1 }else{ 語句組2 } ``` ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-55a04ec93ceb1b87.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) if-else 條件判斷與 if 條件判斷類似,所不同的是,if-else 語句的條件表達式值為真(true)時,會執行 if 的本體語句(語句組1),而條件表達式值為假(false)時,則執行 else 的本體語句(語句組2)。 ###### 多向條件分支結構(elseif子句) 格式如下 ``` if(條件表達式1){ 語句塊1 }elseif(條件表達式2){ 語句塊2 ... ... }elseif(條件表達式n){ 語句塊n }else{ 語句塊n+1 } ``` ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-e8fb89c0279bb44e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ``` <?php date_default_timezone_set("Etc/GMT-8"); //設置時區,中國大陸采用東八區的時間 echo "當前時間".date("Y-m-d H:i:s",time())." "; //通過date()函數獲取當前時間,并輸出 $hour = date("H"); //獲取服務器時間中當前的小時,作為分時問候的條件 if( $hour < 6 ) { //如果當前時間在6點以前,執行下面的語句塊 echo "凌晨好!"; } elseif ( $hour < 9 ) { //如果當前時間在6點之后和9點以前,執行下面的語句塊 echo "早上好!"; } elseif ( $hour < 12 ) { //如果當前時間在9點之后和12點以前,執行下面的語句塊 echo "上午好!"; } elseif ( $hour < 14 ) { //如果當前時間在12點之后和14點以前,執行下面的語句塊 echo "中午好!"; } elseif ( $hour < 17 ) { //如果當前時間在14點之后和17點以前,執行下面的語句塊 echo "下午好!"; } elseif ( $hour < 19 ) { //如果當前時間在17點之后和19點以前,執行下面的語句塊 echo "傍晚好!"; } elseif ( $hour < 22 ) { //如果當前時間在19點之后和22點以前,執行下面的語句塊 echo "晚上好!"; } else { //如果當前時間在22點之后和次日1點以前,執行下面語句塊 echo "夜里好!"; } ``` ###### 多向條件分支結構(switch語句) 語句語法: ``` switch(表達式){ case 值1: 語句序列1; break; case 值2: 語句序列2; break; … default: 語句序列 n; break; } ``` ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-7afd3799b5e43d4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 當程序執行碰到switch條件判斷時,它會取出鍵值,然后與語句體中的case所列出的值逐一比較,如果數值不符合,則將數值往下一個case傳遞,如果數值符合,則執行case中的語句,然后再碰到break語句即跳出switch條件判斷,如果所有的值比對都不符合,則會執行default中的語句 。 > switch語句使用注意事項: * switch語句與if語句不同,它僅能判斷一種關系:是否恒等。 * switch語句中case子句的常量可以是整型常量、字符型常量、表達式或變量。 * 在同一個switch中,case子句的常量不能相同,否則第二個值永遠無法匹配到。 * case 和 default 子句后面的語句序列允許由多個可執行語句組成,且不必用“{ }”括起來,也可以為空語句。 * switch語句中可省略break語句和default子句。但省略后會改變流程。 ``` <?php $week = date("D"); switch( $week ) { case "Mon": echo "星期一"; break; case "Tue": echo "星期二"; break; case "Wed": echo "星期三"; break; case "Thu": echo "星期四"; break; case "Fri": echo "星期五"; break; case "Sat": echo "星期六"; break; case "Sun": echo "星期日"; break; } switch( $i ) { //條件表達式是一個變量$i case 2: //和值2匹配時,沒有break,將控制轉移到下一個case中的語句 case 3: //和值3匹配時,執行下面的語句塊 echo "\$i和值2或3任一個匹配"; break; //退出switch語句 case 4: //和值為3匹配上時,執行下面的語句塊 echo "\$i和值4匹配時,才會執行"; break; //退出switch語句 default: //匹配任何和其他case都不匹配的情況, 要放在最后一個case之后 echo "\$i沒有匹配的值時,才會執行"; } ``` ###### 巢狀條件分支結構 語法: ``` if(表達式1){ if(表達式2){ .. .. .. }else{ .. .. .. } }else{ if(表達式3){ … } } ``` 巢狀式條件分支結構就是if語句的嵌套,即指if或else后面的語句塊中又包含if語句。if語句可以無限層地嵌套在其他if語句,這給程序的不同部分的條件執行提供了充分的彈性。 巢狀式if..else流程控制使用范例: ``` <?php $a=88; echo "數學成績: $A <p>"; if($a>=60){ if($a>=70){ if($a>=90){ echo "不錯喔!!這次數學成績甲等!!"; }else{ echo "還可以...這次數學成績乙等!!"; } }else{ echo "勉勉強強及格邊緣...這次數學成績丙等!!"; } }else{ echo "有待下次努力...數學成績不及格!!"; } ?> ``` # 循環結構 ###### while語句 while循環語法: ``` while(表達式){ 語句或語句序列 ... ... } ``` 當while循環語句中表達式(循環控制語句)的結果為真時,程序將反復執行同一段程序:循環體( while中的語句或語句序列),直到滿足一定的條件(表達式的結果為假時)后才停止執行該段程序。 ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-2aef001b1019f808.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ``` 實例: <?php //求1到100的累加。 $i=1; $sum=0; while($i<=100) { $sum+=$i; $i++; } echo $sum; ?> ``` > 嘗試一下吧 ``` <html> <head><title>使用while循環嵌套輸出表格</title></head> <body> <table align="center" border="1" width=600> <caption><h1>使用while循環嵌套輸出表格</h1></caption> <?php $out = 0; //外層循環需要計數的累加變量 while( $out < 10 ) { //指定外層循環,并且循環次數為10次 $bgcolor = $out%2 == 0 ? "#FFFFFF" : "#DDDDDD"; echo “<tr bgcolor=”.$bgcolor.“>”; //執行一次則輸出一行并指定背景顏色 $in = 0; //內層循環需要計數的累加變量 while( $in < 10 ) { //指定內層循環,并且循環次數為10次 echo "<td>".($out*10+$in)."</td>"; //執行一次,輸出一個單元格 $in++; //內層的計數變量累加 } echo "</tr>"; //輸出行關閉標記 $out++; //外層的計數變量累加 } ?> </table> </body> </html> ``` ###### do...while循環 基本格式: ``` do{ 語句或語句序列 ... ... }while(表達式); ``` 程序會先執行 do 語句體中的語句(循環體),然后再檢查表達式(循環控制語句)的值,如果符合條件式(值為真),就再進行 do 語句體中的語句,直到條件不符合為止 ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-e4d67697df5f8188.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) > 注意: do-while 后面必須加上分號作為結束 do-while與while的最大區別是先執行循環體然后再判斷循環的控制條件 ``` <?php //求1到100的累加。 $i=1; $sum=0; do{ $sum+=$i; $i++; }while($i<=100); echo $sum; ?> ``` ###### for循環 基本格式: ``` for(表達式1;表達式2;表達式3) { 語句或語句序列; } ``` for循環語句中表達式1為循環初始條件;表達式2為循環控制條件;表達式3為控制變量遞增;語句或語句序列為循環體。 ![Paste_Image.png](http://upload-images.jianshu.io/upload_images/4630996-fabcccd37f0a5245.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ``` <?php //使用花括號“{}”將代碼塊括起來,通常代碼塊為一條時可以不加花括號 for( $i = 1; $i <= 10; $i++ ) { echo "這是第<b> $i </b>次循環執行輸出的結果<br>"; } $i = 1; //將for語句中第一部分初始化提出來,放到for前面執行,但for語句中的分號要保留 for( ; $i <= 10; $i++ ) { echo "這是第<b> $i </b>次循環執行輸出的結果<br>"; } $i = 1; //再將第三部分的增量提出來,放到for語句的執行體最后,但也要將分號保留 for( ; $i <= 10; ) { echo "這是第<b> $i </b>次循環執行輸出的結果<br>"; $i++; } $i = 1; for( ; ; ) { if( $i > 10 ) break; echo "這是第<b> $i </b>次循環執行輸出的結果<br>"; $i++; } ``` ###### 特殊的流程控制語句 * break 我們之前在 switch 條件判斷中已經使用過 break 關鍵字,它會使得程序流程離開 switch 本體中的語句,如果 break 使用在 for、while 或 do-while 循環結構中時,將會使得程序離開該層循環。 * continue continue 的作用與 break 有點類似,continue 若使用在 for、while 或 do-while循環結構中,當程序執行至 continue 時,之后的語句將直接被略過,而直接執行下一次的循環動作。 3. exit 當前的腳本中只要執行到exit語句,而不管它在哪個結構中都會直接退出當前腳本。exit是一個函數,當前使用過的die( )函數就是exit( )的別名。可以帶參數輸出一條消息,并退出當前腳本。 > Have a try 1. 四種9X9乘法表(for循環) 2. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制。(while循環)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看