switch語句的用法
語法:switch(val){case x: //程序段1 break;case y: //程序段2 break;case z: //程序段3 break;default: //程序段4}首先,程序會用val的值與 x,y,z的值進行比較,如果等于其中某一個值,則程序跳轉至該case執行程序,執行完后退出switch語句。
例如等于x,則程序跳轉到程序段2,然后退出switch。如果所有的case值都不相等,則執行default中的程序,例如上面的程序段4.說明1:val的值應該為整數,case語句的個數可以很多,上面的x,y,z的值也是由你設定,但一定是一個常量說明2:case語句里邊的break別忘了,否則執行完該程序段后,會繼續往下執行。
關于switch語句的流程,請大神,老師詳細敘述下
問題太多,難得打字一一回應,我直接告訴你switch 語句的工作原理,你的問題就不會有了。
對switch語句來說,你可以先不考慮case,最終的代碼其實是從上到下順序執行的。
像你的,代碼其實是 :
語句序列1;
語句序列2;
語句序列3;
break;
語句序列n+1;
所以,你馬上可以知道,如果沒有break會發生什么了,就是下面的代碼會一直執行到末尾。
那么case 里面的條件怎么體現?其實在編譯時,編譯器會建立一個映射關系,它會通過swicth 表達式的結果,來查找一個內部維護的由結果到代碼的映射關系。比如目前的情況,如switch的值為常量表達式4,那么結果是,直接goto 到 語句序列2; 的開始處。
所以switch case 其實就是在前面編譯器生成代碼來判斷要跳轉到哪里執行而已。那么default 也很好理解了,如果查找不到合適的匹配,就goto到 Default 的代碼處唄。
整個過程就是這樣,這很清楚了吧?
轉載請注明出處華閱文章網 » switch語句流程圖