CONTATTACI

Blog

Le basi di JavaScript: i controlli di flusso

Il controllo di flusso nel linguaggio Javascript, o, per meglio dire, il controllo di flusso di esecuzione, rappresenta l’ordine con cui le istruzioni sono eseguite all’interno di un programma.

Quest’ordine, in alcuni casi, può subire variazioni da specifiche strutture dette strutture di controllo e di iterazione”. Queste strutture modificano il flusso di esecuzione del codice attraverso delle condizioni logiche che tipicamente tornano un valore booleano (true o false), oppure usando delle iterazioni (o loop) che continuano finché la condizione non sarà false. 

Costrutto IF-ELSE

Spesso ci troviamo di fronte a delle operazioni che possono essere eseguite solo al verificarsi o meno di una certa condizione. Per esempio calcolare la somma di due numeri, X e Y, solo e solamente se il primo di loro è un numero pari. in pseudocodice scriverei: se X diviso 2 = 0, allora restituisci X + Y, altrimenti non fare nulla. Per tradurre questo pseudocodice ci avvaliamo di una struttura di controllo molto popolare chiamata: IF-ELSE.

Più nel dettaglio l’IF-ELSE è formato in questo modo: 
 

[...altre istruzioni...]

if (condizione)
    istruzione
else 
    istruzione

[...altre istruzioni...]

 

Se la condizione a riga 3 risulterà vera, allora sarà eseguita l’istruzione successiva all’IF. Se, invece, la prima condizione non risulterà vera, l’intero blocco dopo l’if sarà saltato dall’esecuzione e si passerà direttamente al blocco successivo, quello dentro l’’ELSE.

Potremmo scrivere l'esempio precedente (calcolare la somma di due numeri, X e Y, solo e solamente se il primo di loro è un numero pari) in questo modo: 
 

const X - 10;
const Y = 5;

if(X % 2 === 0) {
   console.log('La somma di X e Y è: ${X+Y}'); // "La somma di X e Y è: 15"
   }

I più attenti avranno notato che nell’immagine qui sopra è assente l’ELSE. JavaScript, come tutti gli altri linguaggi di programmazione, permette di sfruttare solo la prima parte del costrutto IF-ELSE. Omettendo L’ELSE avremo come risultato che se la condizione è soddisfatta verrà eseguita l’istruzione altrimenti il flusso avanzerà.

IF-ELSE Annidati

L’IF-ELSE possono essere seguiti da altri IF-ELSE in sequenza, questo annidamento non ha limiti e può aggiungere altre condizioni ai controlli da eseguire come mostrato a seguire:

 

/*
  if (condizione1) {
     // Blocco eseguito solo se la condizione1 è vera
  } else if (condizione2) {
    // Blocco eseguito solo se la condizione1 è falsa e la condizione2 è vera 
  } else {
    // Blocco eseguito se la condizione1 e la condizione2 sono false
  }
*/

 

Per quanto non ci siano limiti a questi annidamenti, è buona norma evitarli in quanto peggiorano drasticamente la leggibilità del codice e ci sono un sacco di pratiche per evitarli. Generalmente se i controlli da effettuare sono molti è preferibile utilizzare altri costrutti come lo SWITCH-CASE.

Ciclo FOR

Il ciclo FOR appartiene a quelle strutture che permettono di eseguire specifiche operazioni in loop N volte, dove N è un numero definito. 

Quasi tutti i linguaggi di programmazione hanno una implementazione del ciclo FOR con sintassi che non divergono mai più di tanto. Inoltre, ci sono sempre un insieme di elementi tipici di questo costrutto, come ad esempio la variabile contatore utilizzato per inizializzare il ciclo e il numero di iterazioni previste. Il ciclo FOR, come tutti gli altri costrutti iterativi, serve per evitare di scrivere ripetutamente porzioni di codice identico. Per esempio se volessimo loggare con console.log per 5 volte un messaggio, in assenza del ciclo FOR dovremo scrivere per lo stesso numero di volte il comando.. con un ciclo FOR faremmo nel seguente modo:

 

for(let i = 0; i < 5; i++) {
   console.log('Messaggio Numero: ${i + 1}');
}

/* "Messaggio Numero: 1"
   "Messaggio Numero: 2"
   "Messaggio Numero: 3"
   "Messaggio Numero: 4"
   "Messaggio Numero: 5"
*/

 

  • Nella riga 4, al punto let i = 0; stiamo essenzialmente iniziando il nostro contatore   ( i ) a zero come punto di partenza.
  • In " i < 5 " il codice nel corpo del ciclo si ripete finché questa condizione non è falsa. Quindi, una volta raggiunto 5, il ciclo termina.
  • Nell'ultima parte di "i ++" stiamo incrementando il contatore "i" di 1 ogni volta che esegue il ciclo.

La caratteristica del ciclo FOR è ripetere un’operazione per un numero FINITO di volte; tuttavia, cosa useremmo se la condizione per terminare il loop non fosse nota? 

In questo caso useremmo il while-loop.

Ciclo WHILE

Come anticipato nelle righe precedenti, il WHILE si differenzia dal FOR in quanto consente di eseguire un loop senza conoscerne la fine. Il ciclo continuerà finché l’istruzione di controllo (condizione booleana) rimane vera, quindi teoricamente potrebbe ripetersi anche all’infinito!

L’esempio precedente, sfruttando la sintassi del while, sarebbe il seguente: 

let i = 0; 

while (i < 5) {
   console.log('Messaggio Numero: ${i}');
   i++;
}

/* "Messaggio Numero: 0"
   "Messaggio Numero: 1"
   "Messaggio Numero: 2"
   "Messaggio Numero: 3"
   "Messaggio Numero: 4"
*/

Ma, allora, quale usare?

Tutti i cicli possono essere scritti usando un FOR o un WHILE e viceversa, la scelta del costrutto dipende molto dalle situazioni. In generale il WHILE è da utilizzare nei casi in cui non sappiamo quando il loop debba terminare. Insieme al while non dimentichiamo di nominare il DO-WHILE. La differenza fra il WHILE e il DO-WHILE è che il primo controlla subito se la condizione è vera o falsa, mentre il secondo fa il controllo solo dopo aver eseguito il blocco d'istruzioni almeno una volta.
La sintassi usando il DO-WHILE è la seguente: 

 

let i = 0; 

do {
   console.log('Messaggio Numero: ${i}');
   i++;
}  while (i < 5);


/* "Messaggio Numero: 0"
   "Messaggio Numero: 1"
   "Messaggio Numero: 2"
   "Messaggio Numero: 3"
   "Messaggio Numero: 4"
*/

Esistono istruzioni molto più avanzate per gestire LOOP nel linguaggio JavaScript, imparare Javascript non è poi così facile! Tuttavia, queste appena descritte sono una buona base per poter iniziare! Con l’aumentare dell’esperienza sicuramente utilizzerai metodi diversi a seconda dell’oggetto su cui dovrai lavorare, ad esempio nel caso di un array potresti optare per il Javascript array forEach e nel caso di un oggetto potresti usare i metodi nativi come Object.keys() (introdotto con ES6) oppure il classico for…in, come nel seguente esempio:

 

const user = {
   nome: 'Prova',
   email: 'Prova@example.com',
   age: 25,
};

for (const key in user) {
    console.log('${key}: ${user[key]}');
}

*/ "nome: Prova"
   "email: Prova@example.com"
   "age: 25"
*/

 

A te la scelta!

Grazie per la lettura!

 

Articoli correlati

Il linguaggio HTML (Hypertext Markup Language) è uno dei più conosciuti e diffusi: lo si trova infatti praticamente in tutte le pagine web esistenti. È una scelta popolare tra i principianti che si…

Seguici su Facebook

Vuoi entrare nel mondo della programmazione?

Scopri di più sui nostri corsi!

Chiamaci al numero verde

Contattaci su WhatsApp

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.