“default”标签跳过“ ”的初始化操作问题解决

来源:互联网 发布:linux拷贝文件命令失败 编辑:程序博客网 时间:2024/05/21 10:12

原因是在switch 中有初始化的工作。

在switch 语句中不可以有定义部分。如果有定义,如初始化的时候,必须把定义部分用{ } 括起来。

例如:

这段代码 case 后的代码增加了一个括号,括起来,没有这对括号就会报错

case binaryop:     {    // 增加的括号     bool end_right=false; // 标志操作符的右操作数是否结束     do     {      if(delayed_operations.empty())end_right=true;      else      {       prior=delayed_operations.top();       if(prior.Kind()==leftparen)end_right=true;       else if(prior.Priority()<current.Priority())end_right=true;       else if(current.Priority()==6)end_right=true;       else answer.Put_token(prior);       if(!end_right) delayed_operations.pop();      }    }while (!end_right);     delayed_operations.push(current);     break;     }   // 增加的括号    default: cout<<" 你的输入格式可能不正确!"<<endl;break;
阅读全文
0 0
原创粉丝点击