Re: [語法] switch語法

看板C_and_CPP作者 (Alien)時間15年前 (2010/12/01 12:29), 編輯推噓3(3013)
留言16則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《Lynch (林區)》之銘言: : 看到一篇習題 也用電腦去執行過了 : http://nopaste.info/d7f9ff49e2.html : 請問執行後n的值是多少? A:4 : 執行到case 1: : n 不是為3嗎 : 所以理論上case 1: 以下應該無視才對呀 : 為什麼會執行讓n為4呢 : 如果switch有迴圈效果答案應該是4 : .......switch哪有迴圈效果 : 到底是我哪裡出錯呢? = =a 原文的推文太亂, 又好像沒有真的貼出過有用的 資料, 我另闢文回你好了. switch 你可以想成, 視乎 switch 的值, 跳到 相對應的 case 的位置, 然後一直往下執行, 直 到 switch 的完結 比如 swtich (a) { case 1: A; case 2: B; case 3: C; } 假設 a 是 2, 執行至 switch (a), 就會跳到 case 2: 然後一直執行, 所以會跑了 B C 一般來說大部份情況下, 你可能只是想 a = 1 就只跑 A, a=2 只跑 B.. 這時就要用 break. break 的作用是跳出 最接近 而又包著 break 的一層 switch 或 do/while/for loop swtich (a) { case 1: A; break; case 2: B; break; case 3: C; break; } (另補充, 沒加 break 而繼續執行下去的 "技巧" 叫 fall-through, 有些情況下是很有用的技巧. 其實 swtich (a) { case 1: A; break; case 2: case 3: case 4: B; break; case 5: C; break; } 2,3,4 都跑 B, 這也是其中一種 fall-through 的應用) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.238.156.185

12/01 12:32, , 1F
這就是有建設性的東西!
12/01 12:32, 1F

12/01 12:35, , 2F
兩回事, 不要扯在一起. 我還是覺得, 別人告訴你資料
12/01 12:35, 2F

12/01 12:36, , 3F
有誤, 應該是虛心受教而不是硬抱著自己有問題的東西而
12/01 12:36, 3F

12/01 12:37, , 4F
回嗆別人: 你不教別人, 沒權說我的東西錯
12/01 12:37, 4F

12/01 12:38, , 5F
有沒有問題看你怎麼去看他囉, 看到迴圈兩字就硬要做聯
12/01 12:38, 5F

12/01 12:38, , 6F
想我也沒辦法
12/01 12:38, 6F

12/01 12:40, , 7F
是你自己說 "switch ... *就是*.. 迴圈" 的, 還可以怪
12/01 12:40, 7F

12/01 12:40, , 8F
別人? 還有, 要繼續這個話題的, 跑回原文好了, 不要又
12/01 12:40, 8F

12/01 12:40, , 9F
牽連到另一篇回文
12/01 12:40, 9F

12/01 14:20, , 10F
我也覺得 loveme00835 版友有點太凹了, 雖然指正的人也有點
12/01 14:20, 10F

12/01 14:20, , 11F
嗆, 不過並不能讓你的說法變得比較能讓人接受
12/01 14:20, 11F

12/01 14:21, , 12F
不過 200 篇文章之後大家就都忘了, 就此打住吧.... XD
12/01 14:21, 12F

12/01 15:55, , 13F
其實之前「你可以把 switch 想成只執行一次的迴圈」我看
12/01 15:55, 13F

12/01 15:55, , 14F
到時還滿有種恍然大悟的感覺, 之前沒這樣想過XD 當然我
12/01 15:55, 14F

12/01 15:56, , 15F
知道這說法有問題, 但真的很好理解啊XD
12/01 15:56, 15F

12/03 08:37, , 16F
推這篇... 還有常用這技巧的是英文大小寫@@
12/03 08:37, 16F
文章代碼(AID): #1CzSySYd (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
語法
8
84
完整討論串 (本文為第 2 之 2 篇):
語法
8
84
文章代碼(AID): #1CzSySYd (C_and_CPP)