switch语句多个case可以共用一组执行语句

是的,在 C 和 C++ 中,可以使用类似这样的语法来在多个 case 语句之间共用一组执行语句:

switch (expression) {
  case value1:
  case value2:
  case value3:
    // 这组语句将会在 value1、value2 和 value3 之间被执行
    // 其他的语句
    break;
  case value4:
    // 这组语句将只会在 value4 被执行
    // 其他的语句
    break;
  // 其他的 case 语句
  default:
    // 这组语句将会在所有其他情况下被执行
    // 其他的语句

在这个例子中,当表达式的值等于 value1、value2 或 value3 时,将会执行后面的语句。而当表达式的值等于 value4 时,将会执行另外一组语句。如果表达式的值与所有的 case 值都不匹配,则会执行 default 语句之后的语句。

注意,在每组语句的最后,都应该包含一条 break 语句。这样可以防止 case 语句之间的执行语句被意外地执行。

例如,如果你在没有使用 break 语句的情况下执行如下的代码:

switch (x) {
  case 1:
  case 2:
    printf("x is 1 or 2\n");
  case 3:
    printf("x is 3\n");
  default:
    printf("x is not 1, 2, or 3\n");

那么,如果 x 的值等于 1,将会输出 "x is 1 or 2" 和 "x is 3"。如果 x 的值等于 2,将会

  •