SlideServe
Menu
Préférences
© SlideServe · v2026

Corso di Informatica (Programmazione)

nitara avatar
25 diapositives · 427 Views · Dec 09, 2013

Corso di Informatica (Programmazione). Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione). Il tipo boolean. Il tipo boolean è in Java un tipo primitivo che che può assumere esclusivamente due valori: true e false. Esempio:

Corso di Informatica (Programmazione) - slide 1
01 / 25Corso di Informatica (Programmazione)
1 / 17

Télécharger la présentation

Corso di Informatica (Programmazione)
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Corso di Informatica(Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)

  2. Il tipo boolean Il tipo boolean è in Java un tipo primitivo che che può assumere esclusivamente due valori: true e false Esempio: boolean b; b=true; System.out.println(b); b=false; System.out.println(b);

  3. Espressione booleana Un’espressionebooleana è una combinazione di operandi (variabili e valori), operatori aritmetici, operatori relazionali, operatori logici e parentesi tonde. Un’espressione booleana restituisce in Java un valore di tipo boolean e può essere pertanto assegnata ad una variabile di tipo boolean Esempio: boolean b; int x=10; b=(x > 5); // b contiene il valore true

  4. Operatori relazionali Gli operatorirelazionali confrontano due operandi numerici e ne determinano la relazione restituendo un valore di tipo boolean

  5. Operatori relazionali (esempi) Esempio 1: int x=3; int y=4; boolean b; b=(x<=y); System.out.println(b); La stampa è true

  6. Operatori relazionali (esempi) Esempio 2: int x=3; int y=4; boolean b; b=(x==y); System.out.println(b); La stampa è false

  7. Operatori relazionali (esempi) Esempio 3: int x=3; int y=4; boolean b; b=(x!=y); System.out.println(b); La stampa è true

  8. Operatori logici Gli operatorilogici operano su operandi booleani (espressione booleana, variabile booleana o valore booleano esplicito)

  9. Operatori logici (esempio) Esempio: int x=3; int y=4; boolean b; b=(x!=0 && x>y); System.out.println(b); La stampa è false

  10. Operatori logici La forma abbreviata degli operatori di AND e OR differisce dalla forma normale per il fatto che se una valutazione fallisce, le successive valutazioni non vengono eseguite. Ad esempio: int x=3; int y=0; boolean b; b=(y!=0 && x>y); L’espressione x>y non viene valutata in quanto y!=0 è false e basta già per dire che l’intera espressione assegnata a b è false.

  11. Operatori logici ...oppure: int x=3; int y=0; boolean b; b=(y==0 || x>y); L’espressione x>y non viene valutata in quanto y==0 è true e basta già per dire che l’intera espressione assegnata a b è true. Attenzione! Non è detto che l’ordine di valutazione sia quello di codifica dell’espressione… Quindi bisogna andare cauti con istruzioni che potrebbero generare errori in runtime

  12. Precedenza degli operatori • Operatori elencati per precedenza decrescente: • pre-incremento ++, pre-decremento --, negazione aritmetica - • post-incremento ++ e post-decremento -- e negazione logica ! • moltiplicazione *, divisione / e modulo % • somma + e sottrazione – • minore <, maggiore >, minore o uguale <=, maggiore o uguale >=

  13. Precedenza degli operatori • ... • uguale a ==, diverso da != • AND & • OR | • AND && • OR || • assegnamenti: =, +=, -=, *=, /=, %=

  14. Controllo del flusso • Il controllodel flusso è l’esecuzione ordinata di una sequenza di istruzioni. Il controllo del flusso (che vediamo…) può essere: • sequenziale esegue le istruzioni una alla volta nell’ordine in cui sono state scritte • selezione esegue le istruzioni scelte tra almeno due possibilità • iterazione esegue ripetutamente delle istruzioni finchè si verifica una certa condizione

  15. Selezione • I costrutti di selezione (che vediamo…) sono: • if (selezione a una via) • if-else (selezione a due vie) • Nel costrutto di selezione viene effettuato un test (definito da un’espressione booleana che restituisce true o false). Se il test è positivo (true) “si fa qualcosa” altrimenti “non si fa nulla” nella selezione a una via, o “si fa qualcosa d’altro” nella selezione a due vie.

  16. Selezione a una via La selezionea una via permette di eseguire un blocco di istruzioni oppure di saltarlo if(<boolEXPR>){ <BLOCK>; } <instruction_afterIF>; ... dove <boolEXPR> è l’espressione booleana che valutata decide se eseguire o meno il blocco di istruzioni definito da <BLOCK>. Se <boolEXPR> restituisce true, <BLOCK> viene eseguito, il controllo diventa in seguito sequenziale e viene eseguita l’istruzione successiva <instruction_afterIF>. Se <boolEXPR> restituisce false, <BLOCK> viene saltato e viene subito eseguita l’istruzione successiva <instruction_afterIF>.

  17. Selezione a una via (esempi) Esempio 1: int x=3; if(x > 2){ x++; } System.out.println(“x=“+x); La stampa è “x=4”

  18. Selezione a una via (esempi) Esempio 2: int x=3; if(x < 3){ x++; } System.out.println(“x=“+x); La stampa è “x=3”

  19. Selezione a due vie La selezionea due vie permette di effettuare una scelta tra due blocchi di istruzioni if(<boolEXPR>){ <BLOCK1>; } else{ <BLOCK2> } <instruction_afterIF>; ... dove <boolEXPR> è l’espressione booleana che valutata decide se eseguire <BLOCK1> oppure <BLOCK2>. Se <boolEXPR> restituisce true, viene eseguito <BLOCK1>, ...

  20. Selezione a due vie ... il controllo diventa in seguito sequenziale e viene eseguita l’istruzione successiva <instruction_afterIF>. Se invece <boolEXPR> restituisce false, viene eseguito <BLOCK2>, il controllo diventa in seguito sequenziale e viene sempre eseguita l’istruzione <instruction_afterIF>.

  21. Selezione a due vie (esempio) Esempio: int x=3, y=4, min; if(x < y){ min=x; } else{ min=y; } System.out.println(“Minimo=“+min); La stampa è “Minimo=3”

  22. Selezione Nel caso in cui i blocchi di istruzioni dei costrutti di selezione (a una e a due vie) siano composti da una sola istruzione, le parentesi graffe di delimitazione non sono necessarie. Ad esempio il codice della slide precedente può essere riscritto nel modo seguente: int x=3, y=4, min; if(x < y) min=x; else min=y; System.out.println(“Minimo=“+min);

  23. Selezione annidata I blocchi di istruzioni di un costrutto di selezione (a una o a due vie) possono essere a loro volta costrutti di selezione (a una o a due vie). Ad esempio: if(<boolEXPR1>){ if(<boolEXPR2>){ ... } else{ ... } } else{ if(<boolEXPR3>){ ... } else{ ... } }

  24. Selezione annidata (esempio) Esempio: int x=3, y=4, z; if(x != y){ if(x < y) z=x; else z=y; } else{ z=0; } System.out.println(“Z=“+z); La stampa è “Z=3”

  25. Scope di una variabile Una variabile è visibile solo all’interno del blocco di codice in cui viene diachiarata! Ad esempio nel codice seguente: int x=10; if(x < 20){ int y=30; System.out.println(x+y); } System.out.println(y); //ISTRUZIONE ERRATA! La variabile y NON ESISTE al di fuori del blocco di codice relativo al costrutto di selezione