[Risolto] Break non esce da Switch?

di Anonimizzato22529 il
4 risposte
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);
}

4 Risposte

  • Il break ha due utilizzi distinti:

    1) per uscire dallo switch
    2) per uscire da un ciclo while|for|do

    TUTTO PERFETTAMENTE SPIEGATO IN QUALUNQUE libro di C/C++!!!!

    a) comprare libro
    b) studiare libro
  • Semplicemente non mi ero accorto che l'avevo messo dentro il ciclo do while. Non c'era bisogno di rispondere con tale arroganza, altrimenti a cosa serve il Forum, e più in generale i Forum? Ho risolto, in ogni caso, grazie comunque.
  • Non e' arroganza, e' rimarcare il fatto che le cose SI DEVONO STUDIARE ed il forum serve per aiutare a capire QUELLO CHE NON SI CAPISCE, NON come alternativa al libro!
  • BlueRyse ha scritto:


    Non c'era bisogno di rispondere con tale arroganza
    Attenzione non si scherza con la NSA
Devi accedere o registrarti per scrivere nel forum
4 risposte