Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337

    [C] break

    codice:
    for (i=0; i<=100; i++){
         if ((z+i)=5){ printf ("a=5"); 
                     break;
                    }
         printf ("prova");
        }
    non ho ben capito cosa implica il break in un caso come quello sopra.
    se z+i = 5 allora fa la printf a=5 e poi trova il break, che gli dice fermati.
    ma non dovrebbe fermare solo l'if , mentre il for dovrebbe continuare, o sbaglio ?
    cosa accidenti ferma un break?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    il break ferma il loop più interno (rispetto all'istruzione break) o uno switch.
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Una espressione if ((z+i)=5) così non ha senso e non compilerebbe nemmeno.
    Forse volevi dire if ((z+i)==5)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305

    Re: [C] break

    Originariamente inviato da {-_-}
    codice:
    for (i=0; i<=100; i++){
         if ((z+i)=5){ printf ("a=5"); 
                     break;
                    }
         printf ("prova");
        }
    non ho ben capito cosa implica il break in un caso come quello sopra.
    se z+i = 5 allora fa la printf a=5 e poi trova il break, che gli dice fermati.
    ma non dovrebbe fermare solo l'if , mentre il for dovrebbe continuare, o sbaglio ?
    cosa accidenti ferma un break?

    grazie
    indenta per bene oppure rischi di non capirci nulla:


    errore di assegnazione su una condizione if ((z+i)=5)
    for (int i=0; i<=100; i++){
    if (z+i==5){ //corretto con ==
    printf ("a=5"); //stampa
    break; //e poi esci dal for
    }
    printf ("prova");
    }

    se vuoi continuare il ciclo for metti continue al posto del break;

    for (int i=0; i<=100; i++){
    if (z+i==5){
    printf ("a=5"); //stampa
    continue; //continua il for andando subito quì*
    }
    printf ("prova"); //...saltando questo printf
    }//quì*
    Oki.lib Libreria per creare il proprio Engine del sound nei propri progetti
    http://www.twork.it/public/oki/guestbook.asp

    Sistemi di Gestione Studio e Sviluppo per giochi a pronostici
    http://www.twork.it/programmi/programmi.html

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    codice:
    for (i=0; i<=100; i++){
         if ((z+i)==5){ printf ("a=5"); 
                     break;
                    }
         printf ("prova");
        }
    si scusate l'errore.

    ho provato su compilatore , ma dopo il break, non mi stampa più "prova".

    non capisco, in teoria non dovrebbe interrompere solo l'if?

    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    305
    ho fatto un edit al post rileggilo...

    non stampa + prova perchè esci dal for

    break esce da cicli annidati non dalle condizioni "if"

    Per l'if si usa else ecc ecc
    Oki.lib Libreria per creare il proprio Engine del sound nei propri progetti
    http://www.twork.it/public/oki/guestbook.asp

    Sistemi di Gestione Studio e Sviluppo per giochi a pronostici
    http://www.twork.it/programmi/programmi.html

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    337
    ok, pefetto.

    grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.