首先引用C++ primer中的一句话:C++不允许跨过变量的初始化语句,直接跳到该变量作用域的另一个位置。
然后上代码:
#include <iostream>
using namespace std;
//switch练习:C++不允许跨过变量的初始化语句,直接跳到该变量作用域的另一个位置
int main()
{
cout << "please Input a number:";
int num = 0;
while(cin >>num)
{
switch(num)
{
case 0:
{//这里不加中括号是不对的
int b =0;
break;
}
case 1:
int c;//没有进行初始化就是正确的
break;
case 2:
break;
default:
break;
}
}
return 0;
}
主要是作用域和开始那句话的理解,就不会出错了。