[Risolto] Break non esce da Switch?

di il
4 risposte

[Risolto] Break non esce da Switch?

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

  • Re: [Risolto] Break non esce da Switch?

    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
  • Re: [Risolto] Break non esce da Switch?

    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.
  • Re: [Risolto] Break non esce da Switch?

    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!
  • Re: [Risolto] Break non esce da Switch?

    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