error C2361: initialization of 'found' is skipped by 'default' label

c++, compiler-errors, switch-statement

Solution

You need to either enclose your `case 'f':` with a scoped brace:

case 'f' :
{  
    cout<< "enter value to find ";
    cin>>value;
    int found=thetree->find(value);
    if(found!=-1)
        cout<<" found  =  "<<value<<endl;
    else
        cout<< " not found " <<value <<endl;
    break;
}

or place the declaration of `found` outside of the `switch`

Problem

Possible Duplicate: Why can't variables be declared in a switch statement? I have a strange error in my code below: ``` char choice=Getchar(); switch(choice) { case 's': cout<<" display tree "; thetree->displaytree(); break; case 'i': cout<<" enter value to insert "<<endl; cin>>value; thetree->insert(value); break; case 'f' : cout<< "enter value to find "; cin>>value; int found=thetree->find(value); if(found!=-1) cout<<" found = "<<value<<endl; else cout<< " not found " <<value <<endl; break; default: cout <<" invalid entry "<<endl;; } ``` Visual Studio 2010 compiler says that: ``` 1>c:\users\daviti\documents\visual studio 2010\projects\2-3-4\2-3-4\2-3-4.cpp(317): error C2361: initialization of 'found' is skipped by 'default' label 1> c:\users\daviti\documents\visual studio 2010\projects\2-3-4\2-3-4\2-3-4.cpp(308) : see declaration of 'found' ``` I think that I have correctly written break and default statements, so where is the error?

Original source

Related problems