gpt4 book ai didi

c++ - 为什么这段代码打印0223?

转载 作者:行者123 更新时间:2023-11-30 19:54:55 25 4
gpt4 key购买 nike

为什么情况 2 在此 for 循环中被计算两次?

for (int x = 0; x <4; x++)
{
switch (x)
{
case 2: printf("%d", x);
case 0: printf("%d", x);
default: break;
case 3: printf("%d", x);
}
}

编辑:我忘了补充一点,这不是一段合法的代码。这只是我 friend 上周工作考试中出现的事情。

最佳答案

情况 2 不会被评估两次:它只被评估一次。但是,当您不使用 break 语句结束一个 case,而不是离开 switch 时,执行将继续到下一个 case。

换句话说,当x为2时,执行跳转到case 2并调用printf("%d", x) x = 2。然后,执行转向情况 0,并调用 printf("%d", x),其中 x 仍等于 2。然后,执行转向 default 情况,它遇到 break 语句并最终离开 switch

关于c++ - 为什么这段代码打印0223?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49785519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com