C語言注意事項 switch語句

2021-06-27 17:06:44 字數 1049 閱讀 7540

疑問

一、關於switch語句有哪些要注意的地方?

a1.default(如果有的話)可以出現在列表的任何位置,它在其他的case均無法匹配時被選中執行。(語句

摘自《c專家程式設計》)

a2.在每個switch語句中都放上一條default語句是個好習慣,因為這樣做可以檢測到任何非法值。(語句摘自《c和指標》)

a3.switch default should never execute,simply assert.(摘自google c++程式設計規範)

——引申:養成把default語句放在最後的習慣,並在語句中加入assert(0)語句和printf+fflush資訊用於除錯。

但閱讀**時可能有程式設計師會把default語句放前面,這也有可能被執行,它是否被執行與default語句位置無關。

b.語句從匹配表示式的case開始執行。(語句

摘自《c專家程式設計》)

——引申:不要在case之前加入語句,這些語句不會執行,但可以申明變數,不過最好也不要這麼做,這些switch語句塊作用域的變數宣告和都要執行的語句最好放在swich語句之前,除非這些變數和語句只針對某種case。

c.switch的另乙個問題是它內部的任何語句都可以加上標籤,並在執行時跳轉到那裡,這就有可能破壞程式流的結構化。(語句

摘自《c專家程式設計》)

——引申:若default這個詞拼寫錯誤,它會被誤認為是標籤,程式實際無法真正按照我們的想法進入相應的default語句。

d.fall through:它不會在每個標籤後面的語句執行完畢後自動中止。一旦執行某個case語句,程式將會依次執行後面所有的case,除非遇到break語句。(語句

摘自《c專家程式設計》,《c陷阱與缺陷》中也強調說明這一行為)

——引申:每個case結尾都優先加入break語句防止遺漏,實際編寫時若有需要再刪去。

良好的乙個switch語句用法:
switch(character)

switch語句及其注意事項

switch 語法 switch 表示式 語義 先得出表示式的結果,根據結果跳轉到相應的 case 語句塊裡面去執行 表示式結果 常量表示式 就叫相應的 case 語句塊 如果case 後面的常量表示式沒有乙個跟表示式結果對應的 那麼就跳轉到 default 裡面執行語句塊n 當case 塊裡面不加...

switch 語句之格式 注意事項

紙上得來終覺淺,絕知此事要躬行 public class test switch 表示式 表示式中放int 或可自動轉為int的型別 byte short char 列舉 jdk7的字串 case 值1 這是個冒號!語句序列 break 有break,跳出switch語句。不加會case穿透 從執行...

C語言注意事項

1 fgetc與fputc函式 fgetc函式從指定的文 件中讀乙個位元組 fputc 函式向指定的檔案寫乙個位元組 2 r 是回車,n 是換行,前者使游標到行首,後者使游標下移一格。c語言程式設計時 windows系統 r 就是return 回到 本行 行首 這就會把這一行以前的輸出 覆蓋掉 如 ...