switch
2026/7/13小于 1 分钟
switch
switch-case的注意事项:
- fall-through:没有
break会继续执行下一个case的代码
switch (x) {
case 1: do_a(); // 没有break,fall through到case 2
case 2: do_b(); break;
}case标签必须是编译期整型常量
float x = 2.5; switch (x) // ❌ C语言不允许 { case 2.5: ... }default建议总是写上不能在case中直接定义变量(需要用花括号包裹)
switch (x) {
case 1:
int a = 5; // ❌ 编译报错:crosses initialization of 'a'
break;
case 2:
a = 10; // 如果从 case 2 跳进来,a 还没被初始化就被赋值了,逻辑错误
break;
}case 1: {
int a = 5; // ✅ 局部作用域,花括号让编译器知道这个变量仅在这个 case 里生效
break;
}
