Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇,以PHP來說,switch(開關陳述句)常和case break default一起使用
典型結構
switch($controllingExpression){
case 'constantExpression1':echo 'statement1';
case 'constantExpression2':echo 'statement2';
case 'constantExpression3':echo 'statement3';
default:echo 'statement';
}
語法
PHP Switch 陳述句
如果您希望有選擇地執行若干代碼塊之一,請使用 Switch 陳述句,
使用 Switch 陳述句可以避免冗長的 if..elseif..else 代碼塊,
語法
switch (expression){case label1:code to be executed if expression = label1;break;case label2:code to be executed if expression = label2;break;default:code to be executedif expression is differentfrom both label1 and label2;}
作業原理:
對運算式(通常是變數)進行一次計算
把運算式的值與結構中 case 的值進行比較
如果存在匹配,則執行與 case 關聯的代碼
代碼執行后,break陳述句阻止代碼跳入下一個 case 中繼續執行
如果沒有 case 為真,則使用 default 陳述句
下面的例子使用兩種不同方法實作同樣的事,一個用一系列的 if 陳述句,另一個用 switch 陳述句:
1 、switch結構
2、 switch結構可以用字串
為避免錯誤,理解 switch 是怎樣執行的非常重要,switch 陳述句一行接一行地執行(實際上是陳述句接陳述句),開始時沒有代碼被執行,僅當一個 case 陳述句中的值和 switch 運算式的值匹配時 php 才開始執行陳述句,直到 switch 的程式段結束或者遇到第一個 break 陳述句為止,如果不在 case 的陳述句段最后寫上 break 的話,php 將繼續執行下一個 case 中的陳述句段,例如:
這里如果 $i 等于 0,php 將執行所有的 print 陳述句!如果 $i 等于 1,php 將執行后面兩條 print 陳述句,只有當 $i 等于 2 時,才會得到“預期”的結果――只顯示“i equals 2”,所以,別忘了 break 陳述句就很重要(即使在某些情況下故意想避免提供它們時),
在 switch 陳述句中條件只求值一次并用來和每個 case 陳述句比較,在 elseif 陳述句中條件會再次求值,如果條件比一個簡單的比較要復雜得多或者在一個很多次的回圈中,那么用 switch 陳述句可能會快一些,
在一個 case 中的陳述句也可以為空,這樣只不過將控制轉移到了下一個 case 中的陳述句,
一個 case 的特例是 default,它匹配了任何和其它 case 都不匹配的情況,并且應該是最后一條 case 陳述句,
case 運算式可以是任何求值為簡單型別的運算式,即整型或浮點數以及字串,不能用陣列或物件,除非它們被解除參考成為簡單型別,
switch 支持替代語法的流程控制,更多資訊見流程控制的替代語法一節,
switch陳述句注意事項
switch陳述句執行時會從上到下根據括號中運算式的值作比較,當某個case陳述句中的運算式與此值相同時,就執行這個case陳述句或陳述句序列,直到遇到break為止, break陳述句是必須有的,它用來結束switch陳述句的執行,如果所有case陳述句后面的運算式都不等于switch陳述句的運算式expr1的值川0執行default后面的默認陳述句序列,不過,default部分是可選的,如果沒有這一部分,并遇到所有case陳述句都不匹配,那么,就不作任何處理而進入后續程式段的執行,
可見,一個switch陳述句可以代替多個if-else陳述句組成的分支結構,而switch陳述句從思路上顯得更清晰,
使用switch陳述句時,要注意expr1必須是符合byte,char,short,int型別的常量運算式,而不能用浮點型別或long型別,//(也不能為一個字串), (jdk7后,允許String)
1 、switch(colorNum){
2 、case 0:
3 、setBackground(colo. red);
4 、break;
5 、case 1:
6 、setBackground(color.green) ;
7 、break;
8 、default:
9 、setBackground(color.black);
10 、break;
11 、}
switch還有一個用法:
1 、switch(colorNum){
2 、case 0:
3 、case 1:
4 、setBackground(color.green) ;
5 、break;
6 、default:
7 、setBackground(color.black);
8 、break;
9 、}
文章收集與網路,辛苦收集轉載請備注出處一只大臉貓博客!
PHP丨PHP基礎知識之條件語IF判斷「理論篇」
PHP丨PHP基礎知識之流程控制WHILE回圈「理論篇」
PHP丨PHP基礎知識之流程控制for回圈「理論篇」
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24469.html
標籤:PHP
上一篇:簡易的phpexcel匯出柱狀圖
