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à.



 

 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Pier Paolo
Condividi le tue opinioni su questo articolo!