Lo Statement If

  • Uploaded by: Cinzia Bocchi
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lo Statement If as PDF for free.

More details

  • Words: 827
  • Pages: 4
Lo statement IF Introduzione Quasi tutti i linguaggi di programmazione utilizzano un particolare statement, detto IF, per codificare la struttura di selezione. Nei vari linguaggi lo statement può differire per la sintassi, ma la semantica è sempre la stessa. Al termine di questa dispensa:  avrete appreso la sintassi e la semantica dello statement IF di Java  sarete in grado di tradurre la struttura di selezione utilizzando lo statement IF.

Sintassi dello statement IF in Java La struttura di selezione viene realizzata in Java utilizzando lo statement IF la cui sintassi è: if (condizione) { istruzioni del ramo vero } else { istruzioni del ramo falso } Se mancano le istruzioni del ramo falso, la sintassi risulta semplificata nel seguente modo: if (condizione) { istruzioni del ramo vero } Non è consentito scrivere: if (condizione) else { istruzioni del ramo falso }

Semantica dello statement IF in Java Consideriamo, per cominciare, il caso più semplice. if (condizione) { istruzioni del ramo vero } * istruzione successiva all’IF Bocchi Cinzia Ultimo aggiornamento: 29/09/2011

L’esecuzione dell’istruzione avviene secondo queste modalità: 1. Viene valutata la condizione, che può restituire vero o falso. 2. Se la condizione è vera, vengono eseguite le istruzioni contenute tra le parentesi graffe (istruzioni del ramo vero). Terminata l’esecuzione delle istruzioni del ramo vero, si passa ad eseguire la prima istruzione che si incontra alla fine dello statement IF (contrassegnata con un asterisco rosso). 3. Se la condizione è falsa, si passa ad eseguire la prima istruzione che si incontra alla fine dello statement IF (contrassegnata con un asterisco rosso). Le istruzioni del ramo vero non vengono eseguite. Passiamo ora al caso completo. if (condizione) { istruzioni del ramo vero } else { istruzioni del ramo falso } * istruzione successiva all’IF L’esecuzione dell’istruzione avviene secondo queste modalità: 1. Viene valutata la condizione, che può restituire vero o falso. 2. Se la condizione è vera, vengono eseguite le istruzioni del ramo vero. Terminata l’esecuzione delle istruzioni del ramo vero, si passa ad eseguire la prima istruzione che si incontra alla fine dello statement IF (contrassegnata con un asterisco rosso). 3. Se la condizione è falsa, vengono eseguite le istruzioni contenute tra le parentesi graffe (istruzioni del ramo falso) dopo la parola chiave else. Terminata l’esecuzione delle istruzioni del ramo falso, si passa ad eseguire la prima istruzione che si incontra alla fine dello statement IF (contrassegnata con un asterisco rosso).

Errori da evitare Occorre fare molta attenzione a non inserire un punto e virgola dopo la condizione: if (condizione); { istruzioni del ramo vero } * istruzione successiva all’IF Questa situazione non è segnalata dal compilatore poiché non è un errore sintattico. Il punto e virgola corrisponde all’istruzione vuota.  Se la condizione è vera, viene eseguita l’istruzione vuota e si passa poi ad eseguire le istruzioni del ramo vero che non sono considerate, però, come facenti parte dello statement IF ma come istruzione successiva all’IF.  Se la condizione è falsa si passa ad eseguire le istruzioni del ramo vero, intese sempre come istruzione successiva all’IF. Bocchi Cinzia Ultimo aggiornamento: 29/09/2011

La conseguenza è che le istruzioni del ramo vero sono eseguite sempre, indipendentemente dal valore di verità della condizione. L’errore è più semplice da individuare quando si utilizza lo statement IF completo. if (condizione); { istruzioni del ramo vero } else { istruzioni del ramo falso } * istruzione successiva all’IF In tal caso, infatti, il compilatore segnala i seguenti errori: D:\Documents and Settings\Documenti\ProvaIF.java:riga m: 'else' without 'if' else ^ D:\Documents and Settings\Documenti\ProvaIF.java:riga n: class, interface, or enum expected } ^ 2 errors Procedura completata con codice di uscita 1

Cerchiamo di capire perché:  Come nel caso precedente, le istruzioni del ramo vero vengono eseguite indipendentemente dal valore di verità della condizione, ma non sono considerate come facenti parte dello statement IF.  Successivamente, viene trovato un else isolato (lo statement IF è terminato con il punto e virgola dopo la condizione) e, siccome non è corretto sintatticamente, viene segnalato l’errore else without if, cioè else senza if.

Bocchi Cinzia Ultimo aggiornamento: 29/09/2011

Traduzione da diagramma di flusso a codice Java

falso

condizione

if (condizione)

vero

istruzioni del ramo vero

{ }

* istruzione successiva all’IF

falso

condizione

istruzioni del ramo vero

* istruzione successiva all’IF

if (condizione)

vero

{ istruzioni del ramo falso

istruzioni del ramo vero

}

istruzioni del ramo vero

else { istruzioni del ramo falso } * istruzione successiva all’IF

* istruzione successiva all’IF

Uso delle parentesi graffe Le parentesi graffe sono obbligatorie solo quando le istruzioni del ramo vero o del ramo falso sono più di una. Potete comunque utilizzarle sempre, senza timore di commettere errori, se desiderate aumentare la leggibilità del codice.

Quest'opera è stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Bocchi Cinzia Ultimo aggiornamento: 29/09/2011

Related Documents

Lo Statement If
June 2020 19
Lo Lo Lo Lo
December 2019 84
If
November 2019 36
If
December 2019 44
If
June 2020 12

More Documents from ""

3- Testo
April 2020 24
Delicious Tutorial 2
April 2020 21
Mod3.1_m1-classi E Tda
June 2020 15
Lo Statement If
June 2020 19
Analisi
April 2020 32