stu*_*t13 4 c++ syntax compiler-errors switch-statement
我通过以下方式使用了switch语句:
switch (ch){
case 'P' || 'p':
goto balance;
break;
case 'r' || 'R':
goto menu;
break;
default:
cout<<"\t\tInvalid Choice!!"<<endl;
system ("\t\tpause");
system ("cls");
goto menu;
break;
}
Run Code Online (Sandbox Code Playgroud)
但似乎以下语法有问题:
case 'r' || 'R'
Run Code Online (Sandbox Code Playgroud)
编译器抱怨"重复案例值".我的代码出了什么问题?
Yu *_*Hao 10
将其更改为
case 'P':
case 'p':
goto balance;
break;
Run Code Online (Sandbox Code Playgroud)
使用goto通常不是一个好主意.
在你的原代码,case 'P' || 'p':相当于case 1为的结果||是0如果两个操作数是零,或1以其他方式.因此,在这两个case声明,都'p' || 'P'和'r' || 'R'评价1,这就是为什么你有关于重复值的情况下报警.
case 'P' || 'p':
...
Run Code Online (Sandbox Code Playgroud)
本来应该是:
case 'P':
case 'p':
...
Run Code Online (Sandbox Code Playgroud)
请注意,您可以使用另一种(在这种情况下更合理)方法:
switch ( std::tolower(ch) ) {
case 'p':
...
break;
case 'r':
...
break;
default:
...
}
Run Code Online (Sandbox Code Playgroud)
你只需要 #include <cctype>