在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;}