Come nel C e come in qualunque altro linguaggio, java ha delle strutture per eseguire
cicli e decisioni.
Abbiamo il ciclo "for", il ciclo "while", il ciclo "do...while",
la struttura "if...else" e quella "switch...case" .
If...else
Quando si devono prendere strade diverse usiamo l' IF per verificare la veridicità di
un'espressione e se questa è vera allora eseguiamo il codice dentro le graffe sotto IF altrimenti
se l'espressione è falsa si esegue ciò che sta sotto ELSE (oppure non si fa nulla).
Es.
if ( a < 100 )
{
istruzioni;
}
else
{
altre_istruzioni;
}
Se a è minore di 100 allora l'interprete esegue "istruzioni" e poi esce dal blocco decisionale
Se, invece, a non è minore di 100 ma uguale oppure maggiore allora vengono eseguite "altre_istruzioni"
Se "istruzioni" è composto da una sola istruzione possiamo omettere le graffe, lo stesso vale per
l'else (mettere le parentesi non è, comunque, un errore è solo una ridondanza inutile):
Es.
if (a < 100 ) a = 10;
else a = 0;
Nel caso in cui vogliamo semplicemente proseguire con il programma qualora la condizione
fosse falsa possiamo omettere l' ELSE (sarebbe superfluo metterlo ma non sbagliato)
Switch...case
Questo blocco decisionale valuta il valore di un'espressione ed in base ad esso esegue determinate
istruzioni.
La sintassi è:
switch (espressione)
{
case valore1:
istruzioni_1;
case valore2:
istruzioni_2;
case valore3:
istruzioni_3;
case default:
istruzioni_default;
}
java valuta il valore di "espressione" e :
se è uguale a valore_1 esegue istruzioni_1
se è uguale a valore_2 esegue istruzioni_2
se è uguale a valore_3 esegue istruzioni_3
se è qualunque altro valore esegue istruzioni_default
Se non si vuole che oltre alle istruzioni del case vengano eseguite anche quelle del default
occorre terminare ogni case con la parola chiave break.
For
Il FOR esegue le istruzioni all'interno del blocco per un numero predefinito di volte
eseguendo un'operazione, che decidiamo noi, ad ogni ciclo su una variabile (di solito incrementare o decrementare
il contatore)
Es.
for ( int i=0 ; i < 10; i++)
{
istruzioni;
}
Dovremmo leggere : per "i" uguale a zero fintanto che "i" minore di 10 fai "istruzioni"
e incrementa "i" di 1
Cioè il ciclo viene eseguito fintchè i non è maggiore o uguale a 10 incrementando ad ogni
loop il suo valore ( quindi si eseguirà il ciclo esattamente 10 volte)
La condizione, in questo caso i < 10 , può essere una qualunque espressione
che abbia un valore di verità.
While
Il ciclo while viene eseguito fintanto che un'espressione (detta "di controllo") è vera.
Es.
while ( a < 100 )
{
istruzioni;
}
In questo esempio il ciclo viene ripetuto fintanto che a è minore di 100.
Notiamo che a differenza del for che incrementa da solo il contatore qua lo
dobbiamo fare noi all'interno del blocco.
Inoltre è possibile che il ciclo non venga eseguito nemmeno una volta,
avendo il controllo in testa, nel caso avessimo la necessità di eseguire il ciclo sempre
almeno una volta useremo il seguente costrutto.
Do...while
Analogo al while per sintassi e significato, con la sola differenza che l'espressione
viene controllata alla fine (si dice "controllo in coda") e quindi il ciclo viene sempre
eseguito almeno una volta.
Es.
do
{
istruzioni;
}while ( a < 100 );
Come potete vedere è uguale al while!