在C ++中,对于一个个案,如何接受一个以上的值?我知道您可以使用case 1..2其他一些语言为一种情况(例如)设置一个值范围,但是在Xcode上的C ++中似乎不起作用。
int main() {
int input;
cin >> input;
switch (input) {
case 1:
cout << "option 1 \n";
break;
case 2..3: //This is where the error occurs
cout << "option 2 and 3 \n";
break;
default:
break;
}
return 0;}程序显示错误,其范围是“在浮点常量上的后缀'.3'无效”。
您可以通过使用连续的case语句而break在它们之间不加“ 间隔”。
switch (input) {
case 1:
cout << "option 1 \n";
break;
case 2:
case 3:
cout << "option 2 and 3 \n";
break;
default:
break;}请注意,某些编译器支持范围语法,例如,case 50 ... 100但这是非标准的C ++,可能无法在其他编译器上使用。
您可以简单地执行以下操作:
switch (input) {
case 1:
cout << "option 1 \n";
break;
case 2: [[fallthrough]]
case 3:
cout << "option 2 and 3 \n";
break;
default:
break;
}请注意,这case 2 ... 3称为case range,是可以使用的非标准gcc扩展。
您不能执行一系列值,但是可以执行多个值:
switch (input) {
case 1:
cout << "option 1 \n";
break;
case 2: case 3: case 4:
cout << "option 2 or 3 or 4\n";
break;
default:
break;}