Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    funzione continue c++

    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:
    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:
    Codice PHP:
    // Esempio di utilizzo dell'istruzione continue
     
    main() {
    int i 0somma 0;  
    while( 
    10) {
    i++;  
    if(
    == 5) { 
    continue; 

    somma somma i;  
    }
    return (
    0); 

    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 = 50
    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"!
    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??

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: funzione continue c++

    Originariamente inviato da minduser
    Anche il compilatore non mi da ragione
    Allora hai torto

    Il motivo è che quando i vale 9, la condizione del while è verificata. L'istruzione successiva i++incrementa i portandola a 10. Pertanto somma = somma+10.
    Solo dopo la condizione nel while diventa falsa.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Comunque c'è un errore nella guida proprio perché (appunto) nella sommatoria non è riportato il valore 10. Immagino che sia un errore di distrazione visto che il valore della somma è quello corretto (50), ma in effetti chi legge potrebbe confondersi parecchio.
    every day above ground is a good one

  4. #4
    mannaggiaaaa!!...hai ragione ... bastava rifletterci solo un po' di più!!

    vabbè comunque grazie!
    A presto!!


    Per YuYevon
    E non è il solo errore!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.