創作內容

1 GP

【寫程式教學】新手篇4-c/c++流程-2

作者:♙♲⚙\~O_O~/⚙♲♙│2017-01-23 11:19:06│巴幣:2│人氣:318
本篇敘述 switch{case: ... case: ... default: ...}
因為是新手篇所以不(ㄌㄢˇ)說(ㄉㄜ˙)明(ㄐㄧㄤˇ)搭配 enum 的用法



switch
這個東西的功能是:藉由一個整數,來決定"跳"到哪個 case(default) 開始執行。
基本與法如下:
/* 假設 i 是一個整數, A,B,C,D表零道(含)以上指令(可以是 {} ),但最後一個 : 後面要有至少一道指令(可以是 {} ) */
switch(i)
{
    case 0:
    A;
    break;
    case 1:
    B;
    break;
    case 2:
    C;
    break;
    default:
    D;
    break;
} // 稱這個為版本1
首先應該會有兩個疑問:break? default?
先說明 default ,就是指所有 case 以外,即其他。
至於 break ,要先說明 case 的意思。 case 是個入口,不是出口,跳到某個 case 後就會一直執行到 switch 結束
可能這樣講還是沒人懂所以用去掉 break; 的 版本2 跟 版本1 比較:
switch(i)
{
    case 0:
    A;
    case 1:
    B;
    case 2:
    C;
    default:
    D;
} // 稱這個為版本2
首先說明 版本2 的流程:
若 i == 0 ,則跳到 case 0: 的地方,執行 A;B;C;D; 。
若 i == 1 ,則跳到 case 1: 的地方,執行 B;C;D; 。
若 i == 2 ,則跳到 case 2: 的地方,執行 C;D; 。
若 i 不是任何一個 case ,則跳到 default: 的地方,執行 D; 。
那麼有 break; 的 版本1 則:
若 i == 0 ,則跳到 case 0: 的地方,執行 A;,然後遇到 break; 離開 switch 。
若 i == 1 ,則跳到 case 1: 的地方,執行 B; ,然後遇到 break; 離開 switch 。
若 i == 2 ,則跳到 case 2: 的地方,執行 C; ,然後遇到 break; 離開 switch 。
若 i 不是任何一個 case ,則跳到 default: 的地方,執行 D; ,然後遇到 break; 離開 switch 。

其他要注意的地方
  • i 必須是個整數。
    • 即舉凡 bool, char, short, int, long, long int, long long, 以及前述的unsigned版本。
  • case 後面接的要是常數整數。
    • 即直接打數字,或是 const 整數。
  • 前面說過A,B,C,D可以是零道指令,例如:
switch(i)
{
    case 0:
    case 1:
    case 2:
    C;
    break;
    default:
    D;
}
    • 如此,當 i 是 0 或 1或 2 時會執行 C; 然後遇到 break; 離開 switch ,否則執行 D; 然後離開 switch 。
  • 在switch裡面宣告的變數在不同 case 中被使用很危險。
    • 例如 A; 是 int x=123; , B; 是 x+=111; , 如果直接跳到 case 1: ,等同 x 尚未被宣告(初始化)就被使用了。
  • 所有 case 屬於同一個大括號(稱scope)。
    • 意思是說沒辦法 A; 有int x; , B; 又有 int x; ,這是重覆宣告。
  • default: 是其他。
    • 今天就算把 default 拿到最前面, switch 還是會在 i 不是 0,1,2 之一時跳到 default:


要用的話大概就這樣吧(?)

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3456417
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:寫程式|教學|新手|C|C++

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★agold404 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【寫程式教學】新手篇4-... 後一篇:【寫程式教學】新手篇4-...

追蹤私訊切換新版閱覽

作品資料夾

p5147f86讀者們
會聖光的吸血鬼更新囉,伊凡這次在地下城裡又碰到什麼呢~ 追蹤什麼就更好了(≧ω≦)/看更多我要大聲說昨天20:30


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】