在 C++ 中使用特殊符号时"Illegal case"

"Illegal case" when using special symbols in case in c++

本文关键字:Illegal case 特殊符号 C++      更新时间:2023-10-16

我有一些问题,当我在c++中使用特殊的字符大小写。我尝试使用'{',但它结束了错误。Visual Studio 2010。这是我的代码。

for (int i = 0; i < inputString.length(); i++)
{
    switch(inputString[i])
        case '{':
            nowChar = inputString[i];
            nowCaret = i;
            break;
        case '[':
            nowChar = inputString[i];
            nowCaret = i;
            break;
        case '(':
            nowChar = inputString[i];
            nowCaret = i;
            break;
}

如何消除这些错误?我真的不知道。

你需要用大括号开始和结束你的开关。

switch() {
    // ...
}

您可能忘记了switch语句的大括号。顺便说一句,在switch语句中使用default会更好。

for (int i = 0; i < inputString.length(); i++)
{
    switch(inputString[i]) {
    case '{':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '[':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '(':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    default:
        break;
    }
}

您忘记在案例周围使用{}:

switch(inputString[i])
{ //<------------------------------  this
    case '{':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '[':
        nowChar = inputString[i];
        nowCaret = i;
        break;
    case '(':
        nowChar = inputString[i];
        nowCaret = i;
        break;
} //<------------------------------- and this

switch块具有多个大小写时,从{开始。如果只有一个case,那么{}不是强制性的。

switch(i)
     case 0 : 
           // code 
          break; 

这里{}不是必须的