Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.

Slides:



Advertisements
Presentazioni simili
LINGUAGGIO DI PROGRAMMAZIONE C
Advertisements

INFORMATICA Strutture condizionali
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Selezione A. Ferrari.
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
Universita di Camerino
Istruzioni condizionali e blocco
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Laboratorio Matematica e Informatica
Il linguaggio C Gli operatori e le espressioni C Language
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Algebra di Boole ed elementi di logica
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Basi di Dati)
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Oggetti e dati primitivi
Programmazione Corso di laurea in Informatica
Istruzioni di ripetizione in Java
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Selezione (=scelta) con “if-else”
Dichiarazioni e tipi predefiniti nel linguaggio C
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Analisi di Immagini e Dati Biologici
Java base I: Sintassi e tipi di dati
Java base II: Strutture di Controllo
Programmazione in Java Claudia Raibulet
Javascript 5 Selezione. Listruzione IF (in italiano SE) pone una scelta, ossia 'se vero' esegui in un modo oppure 'se falso' esegui in un altro modo.
CODIFICA Da flow-chart a C++.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Parte 4 Elementi di Informatica di base
Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Anno accademico Le istruzioni di controllo in C.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Introduzione a Javascript
Vettori (a una dimensione)
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica

AA 2003/04 © Alberti Programmazione 6. Selezione 2 Le istruzioni del programma Il controllo del flusso del programma Istruzioni condizionali o di selezione Istruzioni di ripetizione Espressioni condizionali e operatori

AA 2003/04 © Alberti Programmazione 6. Selezione 3 Flusso di controllo Lordine di esecuzione delle istruzioni è sequenziale se non altrimenti specificato Alcune istruzioni consentono di alterare lordine sequenziale: Decidere se eseguire o meno unistruzione Eseguire unistruzione ripetutamente Lordine di esecuzione delle istruzioni si chiama flusso di controllo

AA 2003/04 © Alberti Programmazione 6. Selezione 4 Istruzione condizionale Consente di stabilire quale prossima istruzione eseguire Detta anche istruzione di selezione perchè consente di scegliere e prendere decisioni Le sitruzioni condizionali Java if statement if-else statement switch statement

AA 2003/04 © Alberti Programmazione 6. Selezione 5 Istruzione if Sintassi dellistruzione if if ( condizione ) istruzione; if una parola riservata Java La condizione deve essere espressione booleana. Deve essere valutata vero o falso. Se la condizione è vera, viene eseguita listruzione. Se è falsa, listruzione è tralasciata.

AA 2003/04 © Alberti Programmazione 6. Selezione 6 Esempio distruzione if if (somma > MAX) delta = somma - MAX; System.out.println (La somma è " + somma); Prima si valuta la condizione: lespressione (somma > MAX) Se la condizione è vera, viene eseguita listruzione di assegnamento, altrimenti questa viene saltata. In ogni caso viene eseguita listruzione println. Esempio Age.javaAge.java

AA 2003/04 © Alberti Programmazione 6. Selezione 7 Semantica dellistruzione if valutazione condizione falsa istruzione vera

AA 2003/04 © Alberti Programmazione 6. Selezione 8 Espressioni Booleane Per rappresentare le condizioni si usano gli operatori di Java di uguaglianza o relazionali, che riportano valori booleani == uguale != non uguale < minore > maggiore <= minore o uguale >= maggiore o uguale Si noti la differenza tra loperatore di uguaglianza ( == ) e loperatore di assegnamento ( = )

AA 2003/04 © Alberti Programmazione 6. Selezione 9 Istruzione if-else La clausola else può essere aggiunta allistruzione if if ( condizione ) istruzione_1; else istruzione_2; condizione vera viene eseguita istruzione_1 ; se è falsa viene eseguita istruzione_2 Ne viene eseguita una sola e non entrambe Esempio Wages.javaWages.java

AA 2003/04 © Alberti Programmazione 6. Selezione 10 Semantica dellistruzione if-else condizione istruzione_1 verafalsa istruzione_2

AA 2003/04 © Alberti Programmazione 6. Selezione 11 Istruzione blocco Più istruzioni possono essere raggruppate in un blocco Il blocco è delimitato dalle parentesi graffe { … } Un blocco può essere usato là dove la sintassi di Java vuole un istruzione Esempio: in unistruzione if-else, la porzione if, o la porzione else o entrambe, possono essere blocchi See Guessing.javaGuessing.java

AA 2003/04 © Alberti Programmazione 6. Selezione 12 Istruzioni if innestati Listruzione da eseguire come risultato della valutazione di una condizione potrebbe essere a sua volta unistruzione if-else Queste istruzioni sono dette istruzioni if innestate esempio MinOfThree.javaMinOfThree.java La porzione else è associata allultima istruzione if (non fatevi ingannare dallindentazione)

AA 2003/04 © Alberti Programmazione 6. Selezione 13 Confronti tra caratteri Gli operatori di relazione possono essere usati sui dati di tipo carattere Il risultato dipende dalla posizione nella tabella Unicode if ('+' < 'J') System.out.println ("+ è minore di J"); La condizione è vera perché il car '+' viene prima del car 'J' in Unicode: Le maiuscole (A-Z) e le minuscole (a-z) sono in ordine alfabetico nella tabella Unicode

AA 2003/04 © Alberti Programmazione 6. Selezione 14 Confronti tra stringhe Una stringa in Java è un oggetto Non possiamo usare gli operatori relazionali ==, Uguaglianza. Usare il metodo equals per confrontare il contenuto di due oggetti stringa stringa_1.equals(stringa_2)

AA 2003/04 © Alberti Programmazione 6. Selezione 15 Confronti tra stringhe Confronti. Usare il metodo compareTo per confrontare stringhe Secondo lordine dei caratteri nella tabella Unicode stringa_1.compareTo(stringa_2) < 0 se stringa_1 precede stringa_2 > 0 se stringa_1 segue stringa_2 == 0 se sono uguali

AA 2003/04 © Alberti Programmazione 6. Selezione 16 Errore comune Utilizzare == anziché equals if (nome == carlo) Verifica che le due stringhe si riferiscono allo stesso oggetto e non se si riferiscono a oggetti con lo stesso contenuto String nome = carlo; if (nome == carlo) …..vera String soprannome = carlo magno; nome = soprannome.substring (0, 5); if (nome == carlo) …. Falso UguaglianzaStringhe.java

AA 2003/04 © Alberti Programmazione 6. Selezione 17 Confronti tra oggetti Rectangle scatola = new Rectangle (5, 10, 20, 30); Rectangle r = scatola; Rectangle confezione = new Rectangle (5, 10, 20, 30); scatola == r … vera Perché le due variabili si riferiscono allo stesso oggetto scatola == confezione … falsa Perché si riferiscono a due oggetti diversi, anche se hanno contenuti identici scatola.equals(confezione) …vera Verifica la corrispondenza dei campi

AA 2003/04 © Alberti Programmazione 6. Selezione 18 Confronto con null Il riferimento a un oggetto può avere il valore speciale null quando loggetto non è stato ancora creato Per verificare se il riferimento è null si usa loperatore di relazione == if (conto == null) …. allora conto non è ancora stato instanziato Alcuni metodi restituiscono null quando non sono in grado di restituire un oggetto valido Il riferimento null è diverso dalla stringa vuota La stringa vuota è una stringa a tutti gli effetti una stringa che non contiene nulla, di lunghezza 0

AA 2003/04 © Alberti Programmazione 6. Selezione 19 Confronti tra valori in virgola mobile Attenzione va posta anche per il confronto di uguaglianza tra valori in virgola mobile ( float o double ) Raramente si usa loperatore di uguaglianza ( == ) per confrontare due numeri di tipo float È meglio considerare se i due valori sono sufficientemente vicini, anche se non identici, a causa delle approssimazioni nella rappresentazione Es: Precisione.javaPrecisione.java final double EPSILON = 1E-14; if (Math.abs (f1 - f2) < EPSILON) System.out.println (Praticamente uguali.");

AA 2003/04 © Alberti Programmazione 6. Selezione 20 Istruzione switch Listruzione switch consente di decidere qualè listruzione successiva da eseguire tra diverse Listruzione switch valuta unespressione, quindi ne confronta il risultato con i diversi casi elencati Ogni caso contiene un valore e una lista di istruzioni da eseguire Il flusso di controllo è trasferito alla lista associata al primo valore uguale allespressione

AA 2003/04 © Alberti Programmazione 6. Selezione 21 Istruzione switch - 2 La sintassi dellistruzione switch: switch ( espressione ) { case valore_1 : lista_istruzioni_1 case valore_2 : lista_istruzioni_2 case valore_3 : lista_istruzioni_3 case... } Le parole riservate switch e case se espressione uguaglia valore_2, Il controllo passa qui

AA 2003/04 © Alberti Programmazione 6. Selezione 22 Istruzione switch - 3 Spesso si usa unistruzione break come ultima istruzione in ogni lista Listruzione break passa il controllo alla fine dellistruzione switch Se non si usa listruzione break, il flusso di controllo continua ai casi successivi senza controllare lespressione ulteriormente Qualche volta questo è utile, ma di solito i valori dei diversi casi sono mutualmente esclusivi e al più un caso corrisponde al valore dellespressione

AA 2003/04 © Alberti Programmazione 6. Selezione 23 Istruzione switch - 4 Unistruzione switch può avere un caso di default Il caso di default non ha un valore associato ma usa semplicemente la parola riservata default Se è presente il caso di default, il controllo è trasferito allistruzione associata Solitamente il caso di default è messo alla fine dellistruzione switch Se non è presente il caso di default e nessun valore corrisponde, il controllo passa allistruzione successiva allistruzione switch

AA 2003/04 © Alberti Programmazione 6. Selezione 24 Istruzione switch – 5 Lespressione di unistruzione switch deve produrre un valore di tipo intero, cioè un int o character ; non può essere un valore in virgola mobile Notare che la condizione implicita nellistruzione switch è luguaglianza – si cerca di uguagliare il valore di un caso Non si possono eseguire condizioni di relazione

AA 2003/04 © Alberti Programmazione 6. Selezione 25 Istruzione switch - 6 int digit; … switch (digit) { case 1: System.out.println (uno); break; case 2: System.out.println (due); break; case 3: System.out.println (tre); break; default: System.out.println (errore); break; }

AA 2003/04 © Alberti Programmazione 6. Selezione 26 Istruzione switch - 7 Ma non è possibile: String parola; … switch (parola) { case uno: System.out.println (1); break; case due: System.out.println (2); break; … }

AA 2003/04 © Alberti Programmazione 6. Selezione 27 Istruzione switch – 8 Lenunciato switch è eqivalente a diversi if innestati int digit; … if (digit == 1) System.out.println (uno); else if (digit == 2) System.out.println (due); else if (digit == 3) System.out.println (tre); else System.out.println (errore);

AA 2003/04 © Alberti Programmazione 6. Selezione 28 Esempi con istruzione switch Enuciato_switch.java GradeReport.java Esempi con uso dellistruzione break in ogni caso Conta_giorni.java Esempio senza luso dellistruzione break in ciascun caso