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