1. Cicli nella nostra vita
Molto spesso la nostra vita ci impone di compiere più volte le stesse azioni. Ad esempio, supponiamo di dover scansionare un documento composto da molte pagine. Che ripetiamo la stessa procedura più e più volte:
- Metti la prima pagina sullo scanner
- Premi il pulsante di scansione
- Metti la pagina successiva sullo scanner
Questo è difficile da fare manualmente. Sarebbe bello se questo processo potesse essere in qualche modo automatizzato.
Oppure considera un altro esempio: diciamo che voglio contrassegnare tutte le email non lette nella mia casella di posta come spam. Una volta dovevo selezionare ciascuna email una alla volta e contrassegnarla come spam.
Ma i programmatori sono pigri, quindi hanno automatizzato questo processo molto tempo fa: ora selezioni semplicemente un elenco di lettere qualsiasi e fai clic su "contrassegna come spam", quindi il tuo client di posta elettronica scorre l'elenco e sposta ogni e-mail nella cartella spam.
Cosa possiamo dire qui? È super conveniente quando un computer o un programma può eseguire centinaia o migliaia di operazioni monotone con un clic. E ora imparerai come fare anche questo.
2. while
ciclo
L'istruzione if-else ha notevolmente ampliato le nostre capacità di programmazione, rendendo possibile la scrittura di programmi che eseguono azioni diverse in situazioni diverse. Ma c'è un'altra cosa che renderà i nostri programmi di un ordine di grandezza più potenti: i loop .
Java ha 4 tipi di loop: while
, for
, for-each
e do-while
. Ora approfondiremo il primo di questi.
Un while
ciclo è molto semplice. Consiste di due sole parti: una condizione e un corpo del ciclo . Il corpo del ciclo viene eseguito più e più volte finché la condizione è true
. In generale, un while
ciclo ha questo aspetto:
while (condition)
statement;
while (condition)
{
block of statements
}
È molto semplice. L' istruzione o il blocco di istruzioni viene eseguito più e più volte finché la condizione del ciclo è uguale a true
.
Ecco come funziona: prima viene verificata la condizione . Se è vero, viene eseguito il corpo del ciclo (l' istruzione o il blocco di istruzioni ). Quindi la condizione viene nuovamente verificata e il corpo del ciclo viene eseguito nuovamente. E così via finché la condizione diventa falsa.
Se la condizione è sempre vera , il programma non smetterà mai di funzionare. Sarà permanentemente bloccato nel ciclo.
Se la condizione è falsa la prima volta che viene verificata , il corpo del ciclo non verrà eseguito nemmeno una volta.
3. Esempi di loop
Ecco alcuni esempi pratici di loop in azione.
Codice | Spiegazione |
---|---|
|
5 righe verranno visualizzate sullo schermo:
|
Codice | Spiegazione |
---|---|
|
Sullo schermo verranno visualizzate 10 linee:
|
Codice | Spiegazione |
---|---|
|
Il programma legge i numeri dalla tastiera finché i numeri vengono inseriti. |
Codice | Spiegazione |
---|---|
|
Il programma stamperà all'infinito la lettera C sullo schermo. |
Codice | Spiegazione |
---|---|
|
Il programma leggerà le righe dalla tastiera
finché non |
Nell'esempio precedente, il equals()
metodo viene utilizzato per confrontare le stringhe. Se le stringhe sono uguali, la funzione restituirà true
. Se le stringhe non sono uguali, restituirà false
.
4. Loop all'interno di un loop
Quando hai imparato a conoscere le istruzioni condizionali, hai visto che puoi usarle per implementare una logica complessa combinando più istruzioni condizionali. In altre parole, utilizzando un'istruzione if
all'interno di if
un'istruzione.
Puoi fare la stessa cosa con i loop. Per scrivere un loop all'interno di un loop, devi scrivere il secondo loop all'interno del corpo del primo loop. Sarà simile a questo:
while (condition for outer loop)
{
while (condition for inner loop)
{
block of statements
}
}
Diamo un'occhiata a tre compiti.
Compito 1 . Supponiamo di voler scrivere un programma che visualizzi la parola Mom
sullo schermo 4 volte. Un loop è esattamente ciò di cui abbiamo bisogno. E il nostro codice sarà simile a questo:
Codice | Spiegazione |
---|---|
|
Sullo schermo verranno visualizzate 4 righe:
|
Compito 2 . Vogliamo scrivere un programma che mostri 5 lettere A
su una sola riga. Per fare questo, abbiamo bisogno ancora una volta di un ciclo. Ecco come apparirà il codice:
Codice | Spiegazione |
---|---|
|
Invece di println() , useremo print() . Altrimenti, ogni lettera A finirebbe su una riga separata. L'output dello schermo sarà:
|
Compito 3 . Vogliamo visualizzare un rettangolo composto dalla lettera A
s. Il rettangolo dovrebbe essere composto da 4 righe per 5 colonne. Per fare ciò, ora abbiamo bisogno di un ciclo annidato. Prenderemo semplicemente il nostro primo esempio (quello in cui emettiamo 4 righe) e sostituiremo il codice per l'output di una riga con il codice del secondo esempio.
Codice | Spiegazione |
---|---|
|
L' anello esterno è viola. Utilizza la n variabile per contare il numero di iterazioni del ciclo. L' anello interno è verde. Utilizza la m variabile per contare il numero di iterazioni del ciclo. Dobbiamo spostare esplicitamente il cursore sulla riga successiva dopo che il ciclo interno è completo. Altrimenti tutte le lettere stampate dal programma finiranno su una riga. L'output dello schermo sarà:
|
I cicli esterno e interno devono utilizzare variabili diverse per contare il numero di iterazioni del ciclo. Abbiamo anche dovuto aggiungere il System.out.println()
comando dopo il ciclo interno, poiché quel ciclo visualizza la lettera A
s sulla stessa riga. Una volta visualizzate le lettere su una riga, qualcuno deve spostare il cursore su una nuova riga.
5. Confronto tra loop Java e Pascal
Molti di voi hanno studiato Pascal al liceo. Per facilitare la comprensione del materiale qui, dai un'occhiata a questo confronto di while
loop scritti in Pascal e Java. Se non conosci Pascal, salta questa parte.
Pasquale | Giava |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION