char suit = 'S';
int n = 2;
for (int k= 0; k<4; k++){
for (int i = 0; i < n; i++){
switch (k) {
case 0: suit = 'S';
case 1: suit = 'H';
case 2: suit = 'D';
case 3: suit = 'C';
}
这是作业的代码摘录。
套装设为&#39; C&#39;在switch语句之后,根据调试器,它在整个双循环中永远不会改变。我对switch语句有什么误解?
答案 0 :(得分:7)
switch (k) {
case 0:
suit = 'S';
break;
case 1:
suit = 'H';
break;
case 2:
suit = 'D';
break;
case 3:
suit = 'C';
break;
default:
break;
}
没有break;
您输入每个案例块,直到达到第一个break
。
答案 1 :(得分:0)
你需要在每个块的末尾添加一个break语句,如下所示:
switch (k) {
case 0:
suit = 'S';
break;
case 1:
suit = 'H';
break;
case 2:
suit = 'D';
break;
case 3:
suit = 'C';
break;
default:
break;
}
如果你没有用break语句结束一个块,你的开关将继续进入下一个块并执行该代码(如果大小写有效)。
可以找到可能需要此行为的用法here