Salve a tutti.
Prima di tutto complimenti per il forum![]()
Ho un piccolo problemino.
Leggendo la guida di programmazione html.it sul C++ sono giunto all'istruzione continue, dove non sono riuscito a capire una cosa.
Secondo quanto riporta la guida:
Forse non ho capito la funzione di continue, ma secondo i miei calcoli l'output del programmino citato dovrebbe essere "somma = 0 + 1 + 2 + 3 + 4 + 6 + 7 + 8 + 9 = 40" e non "50"!Vi è una piccola ma significativa differenza tra l'istruzione break e l'istruzione continue. Come si è visto nell'ultimo esempio, break provoca l'uscita immediata dal ciclo. L'istruzione continue invece, fa in modo che le istruzioni che la seguono vengano ignorate ma non impedisce l'incremento della variabile di controllo o il controllo della condizione di test del ciclo. In altri termini, se la variabile di controllo soddisfa ancora la condizione di test, si continuerà con l'esecuzione del ciclo. Modifichiamo leggermente l'esempio visto prima cambiando l'istruzione break con l'istruzione continue e inserendo l'incremento della variabile i come prima istruzione del blocco while. Otterremo:Cosa accadrà adesso? Semplicemente, quando la variabile i varrà 5, l'istruzione somma = somma + i verrà saltata ed il ciclo riprenderà dal passo successivo. Dunque, quello che si otterrà e: somma = 0 + 1 + 2 + 3 + 4 + 6 + 7 + 8 + 9 = 50Codice PHP:
// Esempio di utilizzo dell'istruzione continue
main() {
int i = 0, somma = 0;
while( i < 10) {
i++;
if(i == 5) {
continue;
}
somma = somma + i;
}
return (0);
}
Anche il compilatore non mi da ragione![]()
Il programma dovrebbe eseguire un ciclo incrementando i di "1" i fino a "i<10", saltando l'operazione nel momento in cui i=5. Quindi (0 + 1 + 2 + 3 + 4)fino a i<5 e (6 + 7 + 8 + 9) per i>5. La somma dei due intervalli è uguare a 40!
Potete spiegarmi il perchè l'output del compilatore è 50??![]()