Laboratorio di Informatica
INTDER01
INF3
Prodotto da
Generali Matteo
e da
Zaniboni Filippo
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
INTDER01
INF3
• IF in Sequenza
• Struttura a Scelta Multipla (Switch)
IF-ELSE
if ( Condizione ) {
istruzione 1;
istruzione 2;
}
else {
istruzione 3;
istruzione 4;
}
INTDER01
INF3
Nel caso in cui la condizione dell’if è verificata verranno eseguite solo
le istruzioni 1 e 2, altrimenti verranno eseguite solo le istruzioni 3 e 4
presenti all’interno dell’else
Esempio
IF
if ( Condizione ) {
istruzione 1;
istruzione 2;
}
Nel caso in cui la condizione dell’if è verificata verranno eseguite solo
le istruzioni 1 e 2, altrimenti non verrà eseguita nessuna istruzione.
Come possiamo notare da questo esempio l’else è opzionale, ma, se
utilizzato, nessuna istruzione deve essere inserita tra il ramo if e il
ramo else.
INTDER01
INF3
Nel caso in cui all’interno del ramo if o del ramo else vi sia solo una
istruzione è possibile omettere le parentesi graffe.
Esempio
IF in Cascata
In alcuni casi è necessario verificare una condizione dopo avere
verificato un’altra condizione:
INTDER01
INF3
if ( Condizione1) {
istruzione 1;
istruzione 2;
}
else {
if ( Condizione2 ) {
istruzione 3;
istruzione 4;
}
}
Esempio
In questo caso il programma verifica la condizione1 e, se questa non è
verificata, entra nell’else, controlla la condizione2, se questa è
verificata esegue le istruzioni 3 e 4, se invece non è verificata non
esegue alcuna istruzione.
IF in Sequenza
Gli If in sequenza servono per verificare delle condizioni che sono una
in sequenza all’altra.
INTDER01
INF3
if (Condizione1) {
istruzione 1;
istruzione 2;
}
if (Condizione2) {
istruzione 3;
istruzione 4;
}
if (Condizione3){
istruzione 5;
istruzione 6,
}
Esempio
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.
STRUTTURA DI SCELTA
MULTIPLA (SWITCH)
INTDER01
INF3
switch (variabile di controllo ) {
case valori1:
istruzione 1;
break;
case valori2:
istruzione 2;
break;
………………..
case valorin:
istruzionen;
break;
default:
istruzioni;
}
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).
INTDER01
INF3
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 all’interno
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
Esempio
IF-ELSE
#include<iostream.h>
#include<conio.h>
void main()
{
int a, b;
clrscr();
cout<<”inserire il primo numero: ”;
cin>>a;
cout<<”inserire il secondo numero: ”;
cin>>b;
if (a<b) {
cout<<”il
cout<<”il
}
else {
cout<<”il
cout<<”il
}
getch();
INTDER01
INF3
}
//nel caso in cui a sia minore di b
maggior numero inserito è: “<<b;
minor numero inserito è: “<<a;
//nel caso in cui b sia minore di a
maggior numero inserito è: “<<a;
minor numero inserito è: “<<b;
Indietro
IF
#include<iostream.h>
#include<conio.h>
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
INF3
Indietro
IF in Cascata
#include<iostream.h>
#include<conio.h>
INTDER01
INF3
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 all’interno
}
//degli altri if, il valore di y verrà attribuito a x
getch();
}
Indietro
IF in Sequenza
#include<iostream.h>
#include<conio.h>
void main()
{
int x,y;
clrscr();
cout<<”inserisci un numero: “;
cin>>x;
cout<<”inserisci un numero: “;
cin>>y;
INTDER01
INF3
if (x==y)
y++;
if (x==0)
y--;
if (x==1)
x=y;
//se x è uguale a y, y viene incrementata
//se x è uguale a 0, y viene decrementata
//se x è uguale ad uno, x assume il valore di y
getch();
}
Indietro
SWITCH
#include<iostream.h>
#include<conio.h>
INTDER01
INF3
void main()
{
Indietro
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 all’interno
}
//dei case il valore di y verrà attribuito a x
getch();
}
Scarica

Strutture di Controllo