Laboratorio di Informatica INF3 INTDER01 Prodotto da Generali Matteo e da Zaniboni Filippo
INF3 Contenuto presentazione STRUTTURE DI CONTROLLO Le strutture di controllo sono istruzioni che consentono di eseguire una certa sequenza di comandi solo nel caso in cui la condizione preposta sia verificata. E posso essere di vari tipi: IF-ELSE IF IF in Cascata IF in Sequenza Struttura a Scelta Multipla (Switch) INTDER01
INF3 IF-ELSE if ( Condizione ) { istruzione 1; istruzione 2; } else { istruzione 3; istruzione 4; } Nel caso in cui la condizione dellif è verificata verranno eseguite solo le istruzioni 1 e 2, altrimenti verranno eseguite solo le istruzioni 3 e 4 presenti allinterno dellelse INTDER01 Esempio
INF3 IF if ( Condizione ) { istruzione 1; istruzione 2; } Nel caso in cui la condizione dellif è verificata verranno eseguite solo le istruzioni 1 e 2, altrimenti non verrà eseguita nessuna istruzione. Come possiamo notare da questo esempio lelse è opzionale, ma, se utilizzato, nessuna istruzione deve essere inserita tra il ramo if e il ramo else. Nel caso in cui allinterno del ramo if o del ramo else vi sia solo una istruzione è possibile omettere le parentesi graffe. INTDER01 Esempio
INF3 IF in Cascata In alcuni casi è necessario verificare una condizione dopo avere verificato unaltra condizione: if ( Condizione1) { istruzione 1; istruzione 2; } else { if ( Condizione2 ) { istruzione 3; istruzione 4; } In questo caso il programma verifica la condizione1 e, se questa non è verificata, entra nellelse, controlla la condizione2, se questa è verificata esegue le istruzioni 3 e 4, se invece non è verificata non esegue alcuna istruzione. INTDER01 Esempio
INF3 IF in Sequenza Gli If in sequenza servono per verificare delle condizioni che sono una in sequenza allaltra. if (Condizione1) { istruzione 1; istruzione 2; } if (Condizione2) { istruzione 3; istruzione 4; } if (Condizione3){ istruzione 5; istruzione 6, } Possiamo infatti vedere da esempio che nel caso sia verificata la condizione1 vengono eseguite le istruzioni1 e 2, nel caso sia verificata la condizione2 vengono eseguite le istruzioni3 e 4. Nel caso che invece sia verificata la condizione3 verranno eseguite le operazioni5 e 6. INTDER01 Esempio
INF3 STRUTTURA DI SCELTA MULTIPLA (SWITCH) switch (variabile di controllo ) { case valori1: istruzione 1; break; case valori2: istruzione 2; break; ……………….. case valorin: istruzionen; break; default: istruzioni; } INTDER01
INF3 STRUTTURA DI SCELTA MULTIPLA (SWITCH) Per risolvere situazioni più complesse rispetto alla struttura alternativa è stato introdotto lo schema della scelta multipla (o struttura di selezione multipla). Dopo lo switch viene indicato il nome della variabile di controllo (o variabile selettore) la quale deve essere controllata per decidere quale strada seguire tra quelle possibili. Quando le istruzioni da eseguire nel case sono finite, bisogna mettere una istruzione break che serve per uscire dalla struttura di scelta multipla. Nel caso che la variabile non sia verificata per nessun valore allinterno del case, vengono eseguite (se necessarie) una serie di operazioni di default. Come possiamo notare dagli esempi di if in cascata e di switch, la struttura a scelta multipla (o switch) può essere sostituita o può sostituire da una serie di if in cascata INTDER01 Esempio
INF3 IF-ELSE #include void main() { int a, b; clrscr(); cout<<inserire il primo numero: ; cin>>a; cout<<inserire il secondo numero: ; cin>>b; if (a<b) {//nel caso in cui a sia minore di b cout<<il maggior numero inserito è: <<b; cout<<il minor numero inserito è: <<a; } else {//nel caso in cui b sia minore di a cout<<il maggior numero inserito è: <<a; cout<<il minor numero inserito è: <<b; } getch(); } INTDER01 Indietro
INF3 IF #include void main() { int a; clrscr(); cout<<inserisci un numero maggiore di 0: ; cin>>a; if ( num<0)//nel caso in cui il numero inserito sia minore di 0 cout<<ASINACCIO; getch(); } INTDER01 Indietro
INF3 IF in Cascata #include void main() { int x,y; clrscr(); cout<<inserisci un numero: ; cin>>x; cout<<inserisci un numero: ; cin>>y; if (x==1) y++;// nel caso in cui x sia 1 viene incrementato il valore di y else { if (x==2) x++;//nel caso in cui x sia 2 viene incrementato il valore di x else x=y; //nel caso in cui il valore di x non sia verificato allinterno }//degli altri if, il valore di y verrà attribuito a x getch(); } INTDER01 Indietro
INF3 IF in Sequenza #include void main() { int x,y; clrscr(); cout<<inserisci un numero: ; cin>>x; cout<<inserisci un numero: ; cin>>y; if (x==y) //se x è uguale a y, y viene incrementata y++; if (x==0)//se x è uguale a 0, y viene decrementata y--; if (x==1)//se x è uguale ad uno, x assume il valore di y x=y; getch(); } INTDER01 Indietro
INF3 SWITCH #include void main() { int x,y; clrscr(); cout<<inserisci un numero: ; cin>>x; cout<<inserisci un numero: ; cin>>y; switch(x) { case 1: y++;// nel caso che x sia 1 viene incrementato il valore di y break; case 2: x++;//nel caso che x sia 2 viene incrementato il valore di x break; default: x=y;//nel caso in cui il valore di x non sia verificato allinterno }//dei case il valore di y verrà attribuito a x getch(); } INTDER01 Indietro