case里面for循环中初始化变量的问题。
- C/C++ code
#include <iostream>using namespace std;int main(void){ int x; cin>>x; //for(int i=0;i < 10;i++) //cout<<i<<endl; switch(x) { case 1: cout<<"1"<<endl; break; case 2: for(int i=0;i < 10;i++) cout<<i<<endl; break; default: cout<<"default"<<endl; } return 0;}
这样不可以。提示错误。
- C/C++ code
--------------------Configuration: test - Win32 Debug--------------------Compiling...test.cppF:\test\test.cpp(21) : error C2361: initialization of 'i' is skipped by 'default' label F:\test\test.cpp(17) : see declaration of 'i'Error executing cl.exe.test.exe - 1 error(s), 0 warning(s)
这样就可以。
- C/C++ code
#include <iostream>using namespace std;int main(void){ int x; cin>>x; for(int i=0;i < 10;i++) cout<<i<<endl; switch(x) { case 1: cout<<"1"<<endl; break; case 2: //for(int i=0;i < 10;i++) //cout<<i<<endl; break; default: cout<<"default"<<endl; } return 0;}
高手。给小弟讲讲。
[解决办法]
gcc 3.4.5直接通过……
楼主用的vc6?
那就用下面的吧……
- C/C++ code
#include <iostream>using namespace std;int main(void){ int x; cin>>x; //for(int i=0;i < 10;i++) //cout<<i<<endl; switch(x) { case 1: cout<<"1"<<endl; break; case 2: { for(int i=0;i < 10;i++) cout<<i<<endl; } break; default: cout<<"default"<<endl; } return 0;}