Parametri del ciclo for

di il
3 risposte

Parametri del ciclo for

Ciao ragazzi.Ho iniziato ieri a studiare javascript ed in generale la programmazione.Sto guardando i cicli di for e non capisco perche all'interno delle condizioni del ciclo di for devo mettere i <il nome dell'array in questione con .length a seguire.Qual è la logica che sta dietro a questa cosa?

3 Risposte

  • Re: Parametri del ciclo for

    Ciao, in JavaScript (e, in generale, in tutti i linguaggi con sintassi C-like) i cicli for si scrivono in questo modo:
    
    for ( <inizializzazione> ; <condizione> ; <incremento> ) {
        <corpo>
    }
    
    La parte di <inizializzazione> viene eseguita prima di eseguire il ciclo, la <condizione> viene valutata prima di ogni iterazione (anche della 1°) ed il <corpo> viene eseguito solo se essa è vera. Infine dopo aver eseguito il <corpo> si effettua l'<incremento> (che può essere anche un decremento, o qualsiasi altra operazione).

    Un esempio classico è il ciclo su un array:
    
    for (i=0; i<array.length; i++) {
        ...
    }
    
    Tornando alla tua domanda: la variabile "i" è chiamata indice (per questo spesso si indica con "i") e parte da 0 perché gli array sono 0-indexed, cioè il primo elemento occupa la posizione 0. Sulla base di questa convenzione, se un array ha N elementi allora il primo occuperà posizione 0, il secondo posizione 1 e così via, fino all'ultimo che occuperà posizione N-1. E' per questo motivo che la condizione di terminazione del ciclo è " i < array.length", dove "length" è una proprietà che indica la lunghezza dell'array (ovvero N).
  • Re: Parametri del ciclo for

    Ma quel i <array.length è da intendere come minore uguale?Altrimenti l'indice i si fermerebbe al penultimo elemento dell'array...giusto?
    Grazie mille per la risposta,ho iniziato da due giorni a fare programmazione e ancora sono acerbo:):)
  • Re: Parametri del ciclo for

    No, il simbolo < indica "minore di", per il "minore o uguale" devi usare <=.
    Se ci pensi col fatto che gli elementi sono numerati a partire dallo 0 allora è giusto fermarsi ad N-1.

    Sicuramente un esempio ti renderà tutto più chiaro: prendi un array di 3 elementi (cioè N=3), ad esempio l'array { 4, 23, 67 }; avrai che l'elemento 4 occupa la posizione 0, il 23 la posizione 1 e il 67 la posizione 2 (ovvero N-1). Per cui è giusto che quando i=2 si faccia l'ultima iterazione col ciclo, perché se provi ad accedere all'elemento di posizione 3 ottieni un errore (perché appunto ti trovi fuori dall'array)
Devi accedere o registrarti per scrivere nel forum
3 risposte