我正在尝试制作一个输出文件中最常用的字符的程序。
为什么编译器在我尝试此操作时给我一个错误:
for (char i = 97 ; i <=122 ; i ++) {
switch (x) {
case i :
break;
}
}
此代码使用开关来获取最常用的字符。错误是:
'i' cannot appear in a constant-expression
case
标签需要是编译时常量,并且您正在尝试使用变量i
,因此您会收到相当描述性的错误消息。
如果你需要针对变量进行测试,直接替换是if-else if-...-else梯子。虽然你的简单案例没有"else"部分,此外,break
突破了switch
,所以你不能用它来打破循环(直接替换是使用goto
但最好在几乎所有情况下重新考虑你的逻辑)。
因此,请像这样编写代码:
for (char i = 97 ; i <=122 ; i ++) {
if (x == i) {
break; // did you mean to break the loop?
}
}