gpt4 book ai didi

c++ - 大小写切换是这样工作的吗?

转载 作者:可可西里 更新时间:2023-11-01 18:02:10 25 4
gpt4 key购买 nike

我今天看到一段大小写切换代码,看到它的工作原理有点惊讶。代码是:

switch (blah)
{
case a:
break;
case b:
break;
case c:
case d:
case e:
{
/* code here */
}
break;
default :
return;
}

令我惊讶的是,在变量为 c 的情况下,路径进入了“code here”部分。我同意大小写切换的 c 部分末尾没有中断,但我本以为它会通过 default 代替。当您到达 case blah: 行时,它不会检查您的当前值是否与特定情况相匹配然后才让您进入特定段吗?否则,有什么意义?

最佳答案

这称为 case fall-through,是一种理想的行为。它允许您在案例之间共享代码。

如何使用 case fall-through 行为的示例:

switch(blah)
{
case a:
function1();
case b:
function2();
case c:
function3();
break;
default:
break;
}

如果在blah == a时输入开关,那么会执行function1()function2()function3().

如果您不希望出现这种行为,可以通过包含 break 语句来选择退出。

switch(blah)
{
case a:
function1();
break;
case b:
function2();
break;
case c:
function3();
break;
default:
break;
}

switch 语句的工作方式是(或多或少)执行 goto 以跳转到您的 case 标签,并从该点继续运行。当执行遇到 break 时,它会离开 switch block 。

关于c++ - 大小写切换是这样工作的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146106/

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