Flusso di controllo

Transcript

Flusso di controllo
Flusso di controllo
Raffaella Brighi, a.a. 2005/06
Corso di Algoritmi e programmazione. A.A. 2005-06
CdL Operatore Informatico Giuridico.
Flusso di controllo o di esecuzione
„
„
„
„
È l’ordine con cui le istruzioni sono eseguite in un
programma.
Normalmente tale ordine è lineare: inizia con la
prima istruzione del metodo main e termina con
l’ultima istruzione di tale metodo.
Quando richiamiamo il metodo di un oggetto
avviene un salto alla prima istruzione di tale metodo
e, terminata l’esecuzione di tutto il metodo, il
controllo torna nel punto in cui tale metodo era
stato invocato.
All’interno di un metodo il flusso di esecuzione puo’
essere alterato con istruzioni condizionali o cicli.
1
L’istruzione if e if-else
if (totale>importo)
totale=totale + (importo +1);
if (altezza <=MAX)
correzione=0;
else
correzione=MAX-altezza;
„
„
se anziche’ una singola istruzione deve essere eseguito
un blocco di istruzioni queste devono essere racchiuse
tra parentesi graffe
Le istruzioni if possono essere annidate, ovvero inserite
una dentro l’altra.
Esercizio
„
„
Scrivere un’applicazione che legge dall’input
nome ed eta’ dell’utente, stampa in output
Mario ha 26 anni
e se l’eta è <21 scrive in output
La gioventu’ è una cosa meravigliosa!
2
L’istruzione switch
„
Valuta un’espressione per determinarne il valore e poi confronta tale
valore con quelli delle clausole case
switch (idChar)
{
case ‘A’
…….;
break;
case ‘B’
………;
break;
case ‘C’
……….;
break;
default:
……….;
}
Esercizio
„
Leggere dall’input un numero intero
compreso tra 1 e 10. Generare un numero
casuale compreso tra 1 e 10. Se il numero
generato è uguale al numero inserito
dall’utente scrivere in output il messaggio
“Bravo! Hai indovinato”, altrimenti scrivere
“Non hai indovinato” e “Il numero estratto
era:” numero.
3
Operatori logici
operatore
simbolo
!
NOT
&&
AND
¦¦
OR
I tre operatori danno come risultato un boolean
Operatori di confronto
Operatore
Significato
==
Uguale a
!=
Diverso da
<
Minore di
<=
>
>=
„
„
Minore o uguale
Maggiore di
Maggiore o uguale
Consentono di effettuare confronti anche tra caratteri (char). Il
set di caratteri utilizzato infatti (Unicode) definisce un
ordinamento preciso dei caratteri ammessi (pag 538 libro):
caratteri speciali, numeri, lettere maiuscole, …,lettere minuscole,
…
I confronti tra stringhe si fanno con i metodi della classe String
(compareTo, equals).
4
Operatori di incremento e decremento
(++) operatore di incremento: somma 1 a
qualsiasi valore intero o in virgola mobile
(--) operatore di decremento: sottrae 1 a
qualsiasi valore intero o in virgola mobile
count ++;
count = count +1;
count --;
count = count -1;
Operatori di incremento e decremento
„
„
Tali operatori possono essere postfissi e
prefissi. Hanno un significato diverso se
compaiono in un’espressione.
total = count++;
‰
„
A total viene assegnato il valore di count,
dopodiche’ count viene incrementato di 1
total = ++count;
‰
count viene incrementato di 1 e a total viene
assegnato il nuovo valore di count.
5
Operatori di assegnamento
„
In java sono definiti molti operatori che combinano operazioni
elementari (es. +=, *=, ..)
totale += espressione ;
totale= totale + (espressione)
totale *= espressione ;
totale= totale * (espressione)
„
Viene valutata prima l’espressione a dx dell’operatore (+=); il
risultato diventa l’operando di dx dell’operazione da eseguire (+),
mentre l’operando di sx è l’operando a sx dell’operatore (totale)
Operatore condizionale
„
È un operatore ternario perche’ richiede tre operandi ? :
condizione ? operando1 : operando2
L’operazione da’ come risultato operando1 se condizione è vera, operando2 se
condizione è falsa.
operando1 e operando2 possono essere due espressioni
ris = (totale > MAX) ? totale+1 : totale*2
equivale a:
if totale> MAX
ris= totale +1;
else
ris=totale*2;
6