c++ - 在 C++ 中的每个案例步骤自动中断的 Switch 语句

标签 c++ switch-statement

如果我们想要一个 switch 语句,其中对于每种情况我们都需要运行一些指令然后 break 我们会像这样:

switch (condition) {
   case (opt1):
      // do stuff
      break;
   case (opt2):
      // do stuff
      break;
   case (opt3):  
      // do stuff
      break;
   // ...
   default:
      // do stuff
}

是否有可能有一个独占开关,没有失败,默认情况下每个选项都应该 break 而不必明确说明 break 指令?如果不是在 C++ 中,是否知道其他命令式语言是否提供这样的功能?

最佳答案

C# 也需要 break,但如果你不放它就会对你大吼大叫。您需要 goto label; 才能明确通过。

在 C++ 中,没有办法在本地执行此操作(当然,除了可怕的宏之外)。但是,Clang 有 -Wimplicit-fallthrough 警告。然后,您可以插入 [[clang::fallthrough]]; 以消除故意 fallthrough 的警告。

文档:http://clang.llvm.org/docs/AttributeReference.html#fallthrough-clang-fallthrough

关于c++ - 在 C++ 中的每个案例步骤自动中断的 Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31118940/

相关文章:

c++ - C++获取当前IP地址的方法

c++ - 从程序集中键入 '<Module>' ...包含的方法比当前实现允许的多

java - 在调用类似的类 Java 时摆脱 if/else

java - 灵活的 switch case 语法

javascript - 从 switch 语句中返回是否被认为是比使用 break 更好的做法?

c++ - WinAPI : Add style to combo box

c++ - 如何立即终止我的程序

c++ - 初始化 Eigen::Map 的 std::array

Java 没有读取我在用户修改后传递给它的变量

java - 使用 Switch 语句检查字符串中的子字符串