读书人

case里面for循环中初始化变量的有关问

发布时间: 2012-05-14 15:24:34 作者: rapoo

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;} 

读书人网 >C++

热点推荐