Ed eccoci qui con la quinta lezione del corso php, dove andremo a trattare un piccolo approfondimento sulla forma iterativa, introdotta nella quarta lezione. In questa lezione di approfondimento, andremo a vedere più da vicino la gestione di un vettore mediante l’utilizzo del ciclo for e while. Per gestione di un vettore, intendo praticare le due operazioni di base, che si effettuano in una qualsiasi variabile, ovvero le operazioni di lettura e scrittura.
Breve ripasso sui vettori
Direi di rinfrescare un po’ le nozioni viste a riguardo dei vettori.
Un vettore è un array caratterizzato da una sola riga. A differenza invece degli array, che hanno molte più righe. Consiglio di andare a leggere la lezione riguardante i vettori e gli array, per andarsi a rileggere questi concetti.
Esistono due tipi di array. Gli array associativi, dove ogni valore viene associato ad un nome che lo identifica (detto identificatore) e gli array incrementali, tipologia associata molto spesso ai vettori, in cui ogni valore viene identificato da un valore numerico che si incrementa automaticamente in modo incrementale.
Vediamo insieme un esempio di entrambi i vettori
Ecco quindi il risultato di questo piccolo programma
Vedendo il sorgente e il risultato che produce, possiamo ben capire le differenze tra le due tipologie di vettori.
- Vettore associativo -> Il vettore associativo identifica i valori con un identificatore scelto dal programmatore, secondo quindi una propria logica
- Vettore incrementale -> Il vettore incrementale identifica i valori memorizzati al suo interno con un identificatore numerico creato automaticamente. Il valore di identificazione incrementa, per ogni dato aggiunto, di uno. Il primo numero di identificazione è lo 0. Questo sarà molto importante ricordarselo per effettuare correttamente gli esercizi che vedremo nel corso di questa lezione.
Partiamo ora con il nostro approfondimento sulla forma iterativa
Fatto il piccolo ripasso sui vettori, possiamo iniziare a lavorare sulla forma iterativa. In entrambe le tipologie di cicli (ciclo for e ciclo while), andremo a lavorare sui vettori incrementali.
Ciclo for
Partiamo dal ciclo for. Vogliamo creare un vettore, tramite il ciclo for, che ci permetta di inserire 10 valori. I valori che andremo ad inserire saranno il risultato della moltiplicatore tra il contatore del ciclo (counter) e un valore fisso (quindi andremo a realizzare una costante) pari a 4.
Il risultato di ogni moltiplicazione verrà salvato all’interno di un vettore incrementale.
Piccolo ripasso del ciclo for
Se per caso non avete ben compreso la prima parte di approfondimento, vi faccio un piccolo ripasso sulla sintassi del for.
La sintassi prevede innanzi tutto di richiamare il nome del ciclo, quindi scrivere for. Poi bisogna inserire le regole di questo ciclo. Queste regole vanno inserite all’interno delle parentesi tonde.
Le regole del ciclo sono suddivise in 3 piccole parti, separate da un punto e virgola. Questo perché in effetti sono 3 istruzioni ben distinte. La prima istruzione prevede di dichiarare e inizializzare ad un valore di partenza, la variabile contatore, detta anche counter. Il nome della variabile non a caso è i. Questo nome è dovuto ad uno standard internazionale. Potete chiamare il contatore come volete, ma per rendere il codice più comprensibile per tutti, è bene chiamarlo i.
La seconda istruzione prevede di limitare il ciclo. In questo caso il ciclo parte da 0. Lo si capisce dal valore di inizializzazione che abbiamo dato al contatore. Il ciclo deve ripetere per 10 volte delle istruzioni contenute all’interno delle parentesi graffe. Quindi partendo a contare da 0, per arrivare a 10, si conta fino a 9. Quindi la condizione di fine deve essere impostata a minore di 10.
La terza istruzione prevede di incrementare il valore del contatore di uno, grazie all’operatore ++, per raggiungere il valore dettato dalla condizione. Ogni volta che il ciclo si ripete, viene incrementato il contatore di 1.
L’operatore ++ è chiamato operatore di incremento
Esistono due operatori di questo tipo
- Operatore di incremento -> Incrementa il valore di una variabile di 1 -> ++
- Operatore di decremento -> Decrementa il valore di una variabile di 1 -> —
Continuiamo con l’approfondimento
Fatto questo piccolo ripasso, possiamo procedere.
Partiamo con l’operazione di scrittura
Penso che il codice scritto sia più che comprensibile. Vediamo solo la parte di scrittura dei dati all’interno del vettore.
Abbiamo specificato che alla cella corrispondente del valore del contatore, venisse scritto il risultato della moltiplicazione.
Ora andiamo a vedere la parte di lettura del vettore
Qui penso sia abbastanza chiaro il funzionamento di questa piccola porzione di codice. L’unica cosa che voglio farvi notare è che non abbiamo inserito le parentesi graffe nel ciclo for, per contenere l’istruzione da iterare, in quanto per rendere il codice più pulito da leggere, è possibile omettere le parentesi graffe se c’è solo un’istruzione da iterare, come in questo caso.
Vediamo ora il risultato che ha prodotto questo ciclo
Ecco il codice integrale di questo esercizio
Ciclo while
Vediamo ora di fare le stesse due operazioni, quindi lettura e scrittura di un vettore, mediante l’utilizzo del ciclo while.
Breve ripasso del while
Abbiamo visto nella scorsa lezione un introduzione di questo ciclo. Abbiamo visto che la sintassi del ciclo while ricorda molto quella della condizionale, quindi della forma if – else.
La grande differenza tra i ciclo for e il ciclo while è che il ciclo for opera, tramite una variabile contatore, per ripetere delle istruzioni. Il ciclo while invece ripete delle istruzioni in modo tale da permettere alla variabile contenuta nelle istruzioni del ciclo (all’interno delle parentesi tonde), di raggiungere un determinato risultato. In pratica cambia il focus.
Nel for il focus sta nelle istruzioni contenute tra le graffe. Quindi il ciclo è creato in funzione per favorire le istruzioni contenute da iterare, per raggiungere un determinato risultato. Nel caso del while, invece le istruzioni contenute all’interno delle parentesi graffe servono in funzione per far raggiungere alla variabile, o alle variabili (la sintassi da apportare dentro alle parentesi tonde è la stessa della forma if, quindi si possono usare gli operatori || e &&, per inserire più condizioni.
La variabile, contenuta all’interno delle parentesi tonde, non serve quindi da contatore. Quindi va dichiarata e inizializzata prima dell’inizio del ciclo. Se la variabile ha lo stesso valore dell’obiettivo contenuto nel while, il ciclo non viene eseguito. In pratica per capire meglio, prendiamo come esempio il codice che ho postato qui sopra.
Se la variabile $variabile, fosse già inizializzata con il valore 1000, e il valore 1000 fosse presente anche nella condizione del ciclo, allora il ciclo while non sarebbe stato eseguito
Facciamo un piccolo esempio di tutto questo
PS: Nel codice precedente che vi ho postato, c’era un piccolo errore. Vediamo chi mi dice perché c’era.
Ora l’errore è risolto
Vediamo il risultato
Verranno stampati i valori fino al raggiungimento del numero 1000
Proseguiamo con l’approfondimento
Visto questo breve ripasso, possiamo procedere.
Memorizziamo all’interno di un vettore tutti i numeri necessari per raggiungere 1000, partendo dal valore 100. Poi leggiamo il tutto con un ciclo for
Ecco qui il codice
Il risultato di tutto questo è:
Questo esempio non ha bisogno di essere commentato, dato che sono tutte cose che abbiamo già visto.
Per concludere
Questa era la quinta lezione del corso php. Non abbiamo visto nulla di nuovo. Abbiamo solo approfondito la forma iterativa, cosa secondo me molto importante per poi poter iniziare a trattare nuovi aspetti del linguaggio, dalla prossima lezione.
Con questo quindi è tutto. Se hai bisogno di approfondimenti, scrivi qui nei commenti.
Con questo è tutto! Vi aspetto alla prossima lezione!