Programmazione
Java
ciclo for
while / do while
classi
Loop
Per loop si intende l’esecuzione di una parte di codice un numero multiplo di volte.
Java supporta diverse istruzioni per il looping.
Istruzioni Descrizione
for Il ciclo for è più complesso da configurare, ma viene
comunemente utilizzato quando si esegue l'iterazione su un set
di valori.
while Il ciclo while viene eseguito fino a quando una condizione
specificata non diventa false.
do while Il ciclo do while viene eseguito sempre almeno una volta e
continua fino a quando una condizione specificata diventa false.
Il ciclo for
Queste parti sono tutte facoltative e sono costituite da quanto segue:
• La sezione init dichiara o imposta lo stato, in genere dichiarando e inizializzando una variabile
di ciclo, prima che il ciclo inizi l'elaborazione.
• La sezione expression, una volta che diventa false, terminerà l'elaborazione del ciclo.
• La sezione increment viene eseguita dopo che l'espressione è stata testata ed è in genere il
punto in cui viene incrementata la variabile del ciclo.
• L’istruzione break permette di forzare l’uscita dal ciclo.
• L’istruzione continue permette di saltare il codice che segue e andare alla successiva
iterazione.
Il ciclo for
noto come
I punti e
iteratore o
virgola sono
passaggio di
obbligatori!
iterazione
parentesi graffe per
definire il blocco di
codice del ciclo (corpo)
Il ciclo for
increment
init condition (iteration step)
OUTPUT:
number = 1
number = 3
number = 5
Il ciclo for
Esegui passaggio di
1 Inizializza la
2 Controlla se la 4 iterazione
condizione
variabile number a 1 1 + 2 = 3
1 < 7 è vera number = 3
CURRENT OUTPUT: 3 Esegui la riga (blocco di
number = 1 codice)
Il ciclo for
Esegui passaggio di
1 Controlla la 3 iterazione
number = 3 condizione
3 + 2 = 5
3 < 7 is true number = 5
CURRENT OUTPUT: 2 Esegui la riga (blocco di
number = 1 codice)
number = 3
Il ciclo for
Esegui passaggio di
1 Controlla la 3 iterazione
number = 5 condizione
5 + 2 = 7
5 < 7 is true number = 7
CURRENT OUTPUT: 2 Esegui la riga (blocco di
number = 1 codice)
number = 3
number = 5
Il ciclo for
1 Controlla la
number = 7 condizione
7 < 7 is false
CURRENT OUTPUT: 2
number = 1 Vai qui
number = 3
number = 5
Il ciclo for
OUTPUT:
Il ciclo for
1 Inizializza la
2 Controlla la
condizione
variabile number a 1
1 < 0 è falso!
NO OUTPUT! 3
Vai qui
Il ciclo for
Esempio di correzione:
Modificare la condizione in
number < 5
(prima era number < 0)
OUTPUT:
number = 1
number = 3
Il ciclo for
OUTPUT:
Il ciclo for
la condizione è vera. Incrementato di 10,
ogni numero superiore a 100 è anche > 0
Il ciclo non finisce mai (ciclo infinito)
OUTPUT:
Il ciclo for
Esempio di correzione:
Cambia la condizione in number < 130
(prima era number > 0)
OUTPUT:
number = 100
number = 110
number = 120
Esercizio ciclo for
• Crea un ciclo for utilizzando un intervallo di numeri compreso tra 1 e 1000 inclusi.
• Somma tutti i numeri che possono essere divisi sia per 3 che per 5.
• Stampa i numeri che hanno soddisfatto le condizioni di cui sopra.
• Esci dal ciclo una volta trovati 5 numeri che soddisfano le condizioni di cui sopra.
• Dopo aver interrotto il ciclo, stampa la somma dei numeri che soddisfano le condizioni
di cui sopra.
• Nota: digita tutto il codice nel metodo main.
While
Parentesi graffe per
definire il blocco di
codice del ciclo (corpo)
do... while
Il punto e
virgola è
obbligatorio!
Parentesi graffe per
definire il blocco di
codice del ciclo (corpo)
while e do... while
• Le istruzioni break e continue funzionano anche in questi loop
Esercizio - Step 1
Lo step 1 consiste nel creare un metodo denominato numeroPari che accetta un
parametro di tipo int.
Il suo scopo è determinare se l'argomento passato al metodo è un numero pari o meno.
Restituisce true dal metodo se si tratta di un numero pari; in caso contrario, restituisce
false.
Utilizzare quindi un ciclo while per verificare un intervallo di numeri compreso tra 5 e 20
incluso, ma stampando solo i numeri pari determinati dalla chiamata al metodo
numeroPari.
Esercizio - Step 2
Lo step 2 consiste nel modificare il codice while.
Fare in modo che registri anche il numero totale di numeri pari che ha trovato.
Uscire dal ciclo una volta trovati 5 numeri pari.
Infine, visualizzare il numero totale di numeri pari e dispari trovati.
Esercizio 2
Scrivere un metodo con il nome sommaCifre che abbia un singolo parametro denominato
numero, di tipo int, e che restituisca un int.
Il metodo accetta in input un numero positivo.
Se viene passato un numero negativo, deve restituire -1, per indicare che è stato passato un
valore non valido.
Il metodo deve analizzare ogni cifra dal numero e sommare il valore delle cifre.
Ad esempio, se 125 è il valore passato al metodo, il codice dovrebbe sommare ogni cifra, in
questo caso, 1 + 2 + 5, e restituire 8, come valore.
E un altro esempio, se il valore è 1000, il codice dovrebbe sommare ogni cifra, 1 + 0 + 0 + 0, e
restituire 1 come valore.
Se il numero è un numero a una cifra, è sufficiente restituire il numero stesso come risultato.
Esercizio 2
All'inizio del processo:
numero = 1234, e la nostra variabile, somma = 0.
Se usiamo l'operatore resto, ottenendo il resto di numero diviso per 10, questo ci darà la
cifra più a destra di numero:
1234 % 10 = 4
Successivamente, vogliamo eliminare la cifra più a destra, 4, e avere solo le 3 cifre
rimanenti da elaborare.
Possiamo farlo dividendo per 10:
1234 / 10 = 123
Esercizio 2
Quindi, nella seconda iterazione del ciclo:
numero = 123, e somma = 4
E di nuovo usiamo l'operatore resto, ottenendo il resto di numero diviso per 10, che ci dà
la cifra più a destra:
123 % 10 = 3
E aggiungeremo 3 a somma, che era 4:
somma = 7
E ora dividiamo 123 per 10:
123 / 10 = 12
Esercizio 2
Quindi, nella terza iterazione del ciclo:
numero = 12, e somma = 7
E prendiamo di nuovo numero modulo 10:
12 % 10 = 2
e 2 viene aggiunto a somma:
somma = 9
E ora dividiamo di nuovo per 10:
12 / 10 = 1
Ora, numero è una singola cifra, (numero < 10), e qui usciremo dal ciclo.
Esercizio 2
Quindi, in questo passaggio finale, dopo che siamo usciti dal ciclo:
numero = 1, e somma = 9.
Ora, possiamo semplicemente aggiungere quest'ultima cifra singola alla somma e avremo
una somma finale di 10.
Classi
Una classe può essere descritta come:
• Un tipo di dati personalizzato.
• Un blocco di codice speciale che contiene i metodi.
Una classe è un modello per creare degli oggetti
Nome: ____
Indirizzo: ____ Una classe è come un modulo vuoto che
_____________ viene copiato e distribuito
Nome: ____ Il modulo viene copiato e
Indirizzo: ____ distribuito per creare oggetti
_____________
Nome: Paolo Nome: Maria Nome: Luigi
Indirizzo: Viale Roma, 6 Indirizzo: Via Cagliari, 8 Indirizzo: Piazza Mazzini, 7
Un oggetto è come il modulo una volta che
è stato distribuito e archiviato Ogni oggetto avrà valori specifici per i
dati del modulo raccolti
A class and objects
Classe
Un oggetto è chiamato
istanza di una Si crea un oggetto "creando
un'istanza di una classe"
particolare classe.
È possibile creare molti
oggetti utilizzando una
Oggetto Istanza singola classe. Ognuno
può avere attributi o
valori univoci
Oggetto Oggetto
Oggetto e istanza sono
termini intercambiabili Istanza
Creazione di un nuovo oggetto da una classe
Il modo più comune per creare un oggetto consiste nell'utilizzare la parola chiave new.
La parola chiave new crea un'istanza di una classe e, facoltativamente, è possibile passare
i dati durante la creazione di tale istanza per impostare i dati su tale oggetto.
Guardando la String, in realtà è una classe. Ma occupa un posto speciale nel linguaggio
Java, perché possiamo creare una stringa semplicemente usando un letterale che abbiamo
visto.
Ma potremmo anche usare new.
Campi statici e di istanza
Campo statico Campo istanza
Richiede la parola chiave 'static' Omette la parola chiave 'static' quando
quando viene dichiarata nella classe. viene dichiarata nella classe.
Il valore del campo viene Al valore del campo non viene allocata
memorizzato in una posizione di alcuna memoria e non ha alcun valore
memoria speciale e in una sola fino a quando l'oggetto non viene
posizione. creato.
Il valore è accessibile da
Il valore è accessibile da [Link]
[Link]
Esempio: [Link]
Esempio: Integer.MAX_VALUE (mioOggetto è il nome della variabile
per un oggetto creato e mioCampo è un
attributo della classe.