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?