Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!
- Costrutti di programmazione semplici: if
e while
- Il costrutto if
Questa condizione, ci permette di prendere semplici decisioni basate su
valori immagazzinati. In fase di runtime, la Java Virtual Machine testa un’espressione
booleana, e a seconda che essa risulti vera o falsa esegue un certo blocco di
istruzioni, oppure no. Un’espressione booleana è un’espressione che come
risultato può restituire solo valori di tipo boolean,
cioè true o
false.
Essa di solito si avvale di operatori di confronto, e, magari, di operatori
logici. La sintassi è la seguente:
if (espressione-booleana)
istruzione;
per esempio:
if (numeroLati==3)
System.out.println("Questo è un triangolo");
Nell’esempio, l’istruzione di stampa, sarebbe eseguita se e solo se la
variabile numeroLati
avesse valore 3. In quel caso l’espressione booleana in parentesi varrebbe true,
e quindi sarebbe eseguita l’istruzione che segue l’espressione. Se invece l’espressione
risultasse false,
sarebbe eseguita direttamente la prima eventuale istruzione che segue l’istruzione
di stampa. Possiamo anche estendere la potenzialità del costrutto if,
mediante la parola chiave else:
if (espressione-booleana)
istruzione1;
else istruzione2;
per esempio:
if (numeroLati==3)
System.out.println("Questo è un triangolo");
else
System.out.println("Questo non è un triangolo");
Se if
potremmo tradurlo con "se", else
potremmo tradurlo con "altrimenti". In pratica nell’esempio, se l’espressione
booleana è vera, sarà stampata la stringa "Questo è un triangolo",
se è falsa sarà stampata la stringa "Questo non è un triangolo".
Possiamo anche utilizzare dei blocchi di codice, con questo tipo di sintassi:
if (espressione-booleana)
{
istruzione1;
...........;
istruzionek;
} else {
istruzionek+1;
.............;
istruzionen;
}
ed anche comporre più costrutti nel seguente modo
if (espressione-booleana)
{
istruzione1;
...........;
istruzionek;
} else if (espressione-booleana){
istruzionek+1;
.............;
istruzionej;
} else if (espressione-booleana){
istruzionej+1;
.............;
istruzioneh;
} else {
istruzioneh+1;
.............;
istruzionen;
}
Possiamo anche annidare questi costrutti:
. . .
. . .
if (x!=0)
if (x!=0){
if (y<10)
if (y<10)
z=5;
z=5;
else
}else
z=7;
z=7;
. . .
. . .
Questi due frammenti di codice, sono equivalenti. Il secondo però, è
effettivamente più chiaro, dal momento che si utilizza un blocco di codice in
più.
- Il costrutto while
Questo ciclo, ci permette di iterare uno statement (o un insieme di statement
compresi in un blocco di codice), tante volte fino a quando una certa condizione
booleana è verificata. La sintassi è la seguente:
[inizializzazione;]
while (espr. booleana) {
corpo;
[iterazione;]
}
Come esempio proponiamo una piccola applicazione che stampa i primi dieci
numeri:
class WhileDemo {
public static void main(String args[]) {
int i=1;
while (i<=10) {
System.out.println(i); //la variabile i
// prima di essere stampata viene
//convertita in stringa
i++;
}
}
}
Seguiamo in sequenza le istruzioni che sarebbero eseguite in fase di runtime.
Viene in primo luogo dichiarata ed inizializzate a 1
una variabile intera i.
Poi inizia il ciclo, in cui è esaminato il valore booleano dell’espressione
in parentesi. Siccome i
è uguale ad 1,
i è anche minore di 10
e la condizione è verificata. Quindi, verrà eseguito il blocco di codice
relativo, nel quale, prima sarà stampato il valore della variabile i
(ovvero 1),
e poi verrà incrementata la variabile stessa di un’unità. Terminato il
blocco di codice, verrà nuovamente testato il valore dell’espressione
booleana. Durante questo secondo tentativo, la variabile
i varrà 2.
Quindi, anche in questo caso, sarà eseguito di nuovo il blocco di codice.
Verrà allora stampato il valore della variabile i
(ovvero 2),
ed incrementata nuovamente di una unità, la variabile stessa. Questo
ragionamento si ripete fino a quando la variabile i
non assume il valore 11.
Quando ciò accadrà, il blocco di codice non verrà eseguito, dal momento che,
l’espressione booleana non sarà verificata. Il programma quindi eseguirà le
istruzioni successive al blocco di codice e quindi terminerà.
|