/我看到k
的结果通过参数观察是4,但程序结束后最终结果是123。这是为什么?/
/感谢您的回答。 我之前的困惑我已经说清楚了。 事实上,这是一个考试中询问输出的问题。我在考试中错了,因为我认为输出是 1,但正确答案是 123。 也许这就是指令不清楚的原因。/
#include <stdio.h>
int main()
{
int k;
scanf("%d", &k);
switch (k)
{
case 1: printf("%d", k++);
case 2: printf("%d", k++);
case 3: printf("%d", k++);
break;
default: printf("Full!");
}
return 0;
}
最佳答案
您的代码中没有最终结果:在switch
之后不使用k
,因此它在调试器中的值毫无意义。
您可以修改代码以打印 k
的最终值,并会看到 1
、2
和 3
转换为 4
,所有其他值保持不变。
#include <stdio.h>
int main() {
int k;
scanf("%d", &k);
switch (k) {
case 1: printf("%d\n", k++);
case 2: printf("%d\n", k++);
case 3: printf("%d\n", k++);
break;
default: printf("Full!\n");
break;
}
printf("%d\n", k);
return 0;
}
关于c - 如何正确修改以下 "switch"语句以获得预期的输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55203410/