PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] C貪食蛇問題
作者:
a71245969
(熊怪唉優)
2020-07-19 21:52:34
板上大家好,小弟又來發問了
1.程式碼:https://0rz.tw/ORCNi
2.問題:程式中設定蛇轉向時(程式碼片段如下圖)使用switch來做多重選擇會使程式crash
但用if-else或if-if撰寫都正常,想請問原因為何?
https://imgur.com/gxWfqTD
3.使用if-if或if-else之寫法:
(1)if-if:https://imgur.com/s9gDHJs
(2)if-else:https://imgur.com/dUe7ybw
拜託各位大大解惑了!
作者:
bluesoul
(å¿™æ»ä½ è€çˆ¸)
2020-07-19 22:00:00
方向是數字還是字元?switch建議加上default
作者:
mmmmei
(mmm煤)
2020-07-19 22:01:00
你的case 是文字的‘1234’ 不是數字的1234
作者:
Lipraxde
(Lipraxde)
2020-07-19 22:31:00
用 switch 要記得寫 default 啊
作者:
loveme00835
(髮箍)
2020-07-19 22:42:00
用 switch 不建議加 default label
作者:
Lipraxde
(Lipraxde)
2020-07-19 22:47:00
真假@@,我幾乎都會加耶
作者:
loveme00835
(髮箍)
2020-07-19 22:50:00
使用 default 編譯器就沒機會幫你找出未處理的 case而 non-enum 也要好好考慮是否真的適用 switch
https://godbolt.org/z/9Ws5v3
寫 C++ 最重要的概念是把檢查的工作都交給編譯器, 編得過的程式碼就不容易出錯上面程式碼應該下 -Wswitch 搭配 default 0rz比較好的設計是把輸入和程式內部表示分開, switchover char 是權責沒有分離的例子, 既然 switch 的label 數量是固定的, 就沒道理使用 char 來表示方向,一來不能用程式碼來闡述設計, 二來因為値域太大的關係, 所有介面以及運算都是潛在會出 bug 的地方
作者:
Lipraxde
(Lipraxde)
2020-07-19 23:16:00
加 unreachable 也不會報錯,確實不該無腦用 default
繼續閱讀
Re: [問題] C++ sort函數在leetcode上使用問題
poyenc
[問題] C++ sort函數在leetcode上使用問題
wilson50101
Re: [問題] 用書分析或推薦
MartinJ40
[問題] 請問不定參數函式怎寫override?
Keitaro
Re: [問題] 用書分析或推薦
james732
[問題] 用書分析或推薦
spong
[問題] zerojudge e288 時間複雜度問題
Ori185
scanf_s回傳值問題
sweetfat
Re: [討論] 該學習C++嗎?
druid0214
[問題] solidcam連線除錯修改
johnny30489
Links
booklink
Contact Us: admin [ a t ] ucptt.com