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 possibile scrivere: new SavitchIn().nomemetodo(parametriMetodo) 2) Ma se il metodo è definito static, è possibile: SavitchIn.nomemetodo(parametriMetodo) • Per ora potete utilizzare sempre il primo modo, successivamente vedremo quali sono le differenze e quando è opportuno usare il secondo. Lavorare con le stringhe Le stringhe sono un caso particolare di classe, si utilizzano in questo modo: • Dichiarazione e inizializzazione: String nomevariabile = “testo…”; oppure String nomevariabile = new String(“testo…”); • X richiamare i metodi: nomevariabile.nomemetodo(parametriMetodo); Costrutto if-else esercizi 1. Acquisite da tastiera due numeri ‘a’ e ‘b’, che definiscono un intervallo, successivamente acquisite un terzo numero ‘c’. Se ‘c’ è compreso nell’intervallo stampate “il numero XX è compreso” altrimenti “alt il numero XX è fuori”. 2. Acquisite da tastiera due numeri di tipo ‘long’ e una var. che contenga un carattere (+,-,*,/,%). A seconda del carattere immesso, calcolare il risultato dell’operazione in una variabile ‘risultato’ (di tipo a scelta) e stamparla a video. if-else nidificati if(cond1) else if(cond2) if(cond3) else blocco 1 blocco 2 else blocco 3 blocco 4 • E’ possibile scrivere all’interno di un blocco (if o else), un altro costrutto if-else 3. Create(e inizializzate) una costante di tipo intero chiamata ‘NUMEROFISSO’, acquisite altri due numeri da tastiera, trovate e stampate a monitor il maggiore dei tre. (suggerimento: x semplicità, scegliete 3 numeri ‘a’‘b’‘c’ diversi tra loro . Confrontate prima ‘a’ con ‘b’ poi ‘a’ con ‘c’…). 4. Acquisite da tastiera due numeri decimali, fate la moltiplicazione tra loro e il risultato lo salvate in una terza variabile ‘risultato’ di tipo intero. (Attenzione all’overflow!) Stampate a video un messaggio a seconda che ‘risultato’ sia divisibile per un numero primo minore di 10. (esempio output: il numero 4568 è divisibile per 2 Oppure: il numero 123456789 è divisibile per 3) switch Utile se bisogna scegliere tra più strade: switch variabile case ‘unpossibilevalore’: instruzioni; break; case ‘altrovalore’: instruzioni; break; ……… default: altrimenti eseguo queste istruzioni; variabile può essere solo di tipo intero o carattere!!! Provate a casa: • Riscrivere l’esercizio 2 sostituendo gli if con uno switch. Costrutto while E’ utilizzato per ripetere l’esecuzione di un blocco fino a quando l’espressione è vera. Costrutto for Esercizi 5) Acquisite da tastiera una stringa e visualizzate a monitor solo i caratteri in posizione pari. 6) Acquisite da tastiera due stringhe, controllate se hanno caratteri uguali nelle stesse posizioni e stampateli a video. Utilizzate prima il costrutto while, dopo il for. Qual è la differenza? Curiosità • Qual è la differenza tra l’operatore & e l’operatore &&? int x = 0; System.out.println((x != 0) & (5/x > 10)); [/ by 0] System.out.println((x != 0) && (5/x > 10)); [false] System.out.println((x == 0) | (5/x > 10)); [/ by 0] System.out.println((x == 0) || (5/x > 10)); [true]