Ragazzi come mai se rimpiazzo goto con break, non mi esce dallo stmt switch? Non posso usare goto, perché il mio professore non vuole che lo usiamo... :/. Qualcuno che mi aiuti?
#include <iostream>
using namespace std;
int main()
{
int x;
bool b;
float p,c,r1,r2,y=2.54;
stop:
do
{
cout<<"Scegli un'operazione:\n1. Conversione pollici --> cm\n2. Conversione cm --> pollici\n3. Termina"<<endl;
cin>>x;
switch(x)
{
case(1):
do
{
cout<<"Inserisci il numero di pollici da convertire"<<endl;
cin>>p;
if(p<0 || cin.fail())
{
cout<<"Input non valido - ripeti"<<endl;
cin.clear();
cin.ignore(256, '\n');
b=true;
}
else
{
r1=p*y;
cout<<"Numero di centimetri:"<<r1<<endl;
b=false;
goto stop;
}
}
while(b);
case(2):
do
{
cout<<"Inserisci il numero di cm da convertire"<<endl;
cin>>c;
if(c<0 || cin.fail())
{
cout<<"Input non valido - ripeti"<<endl;
cin.clear();
cin.ignore(256, '\n');
b=true;
}
else
{
r2=c/y;
cout<<"Numero di pollici:"<<r2<<endl;
b=false;
goto stop;
}
}
while(b);
case(3):
cout<<"Grazie e arrivederci!"<<endl;
return 0;
default:
cin.clear();
cin.ignore(256, '\n');
cout<<"Scelta non valida - ripeti"<<endl;
}
}
while(true);
}