Annuncio

Collapse
No announcement yet.

comandi while e for

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts

  • #16
    Allora, ho provato in Visual C++ e funziona, nel caso del for termina il ciclo e col while va all'infinito

    Ma col java si può fare l'assegnamento subito con la dichiarazione?
    http://gamesurf.tiscali.it/forum/usernote.php?u=13 ultima pagina

    Comment


    • #17
      Si, mi sembra si possa fare. Il problema potrebbero essere le regole di visibilità: infatti mi ricordo che in certe situazioni Java si comportasse diversamente dal C++. Aspettiamo il responso di Ellen e sapremo...
      "il 9-10 marzo, ho letto su un sito che dice che chi scarica film/mp3 con p2p (anche da casa per uso personale), le forze armate lo attaccano"
      da it.comp.software.p2p (marzo 04)

      Comment


      • #18
        Originariamente Scritto da Ellen
        scusa ma come fai a far inizaire il for onon avendo inizializzato a all'interno della parentesi tonda???
        Beh, a è stata inizializzata...
        "il 9-10 marzo, ho letto su un sito che dice che chi scarica film/mp3 con p2p (anche da casa per uso personale), le forze armate lo attaccano"
        da it.comp.software.p2p (marzo 04)

        Comment


        • #19
          ho trovato la soluzione su suiggerimento di dansolo


          1. se non inizializzi quella a nel for nemmeno compila -.-


          poi

          for(int a=0;a<10;a++){
          a=0;
          System.out.println(a);
          }

          fa un loop infinito di 0

          /////////

          int a=0;
          while (a<10){
          a=0;
          a++;
          System.out.println(a);
          }

          fa un loop infinito di 1

          Comment


          • #20
            Originariamente Scritto da dansolo
            void main()
            {
            for (a=0; a<10; a++)
            int a=0;
            }

            infatti il ciclo viene correttamente eseguito e il programma termina.
            Mi pare abbastanza ovvio. Se analizzi le operazioni che vengono compiute:
            1) a=0
            2) di nuovo a=0
            3) alla fine dello statement a++

            e quindi prima o poi arrivando a 10 il programma termina.

            Il seguente codice non funziona

            void main()
            {
            int a=0;
            while (a<10)
            {
            int a=0;
            a++;
            }
            }

            infatti il ciclo non termina mai e si pianta. Io ho compilato con il gcc. Qualcuno può fare la prova con il Visual C++?
            1) a=0
            2) inizia il ciclo while in cui a viene risettata a 0 e poi incrementata.
            E' chiaro che in questo modo a assumera solo i valori 0 e 1 e quindi il ciclo non termina mai.

            Caro Danielino, c'era bisogno di provare a compilare? Armano NON sarebbe fiero di te. :grin:

            Tornando alla domanda originale, la differenza fra i due cicli sta nel modo in cui viene incrementata la variabile: nel while l'incremento si trova all'interno degli statement e viene eseguita dopo gli statement, nel for invece si trova all'esterno; questo spiega il comportamento con il continue: e' chiaro che se all'interno degli statement c'e' un'operazione che fa saltare le istruzioni successive, il for incrementa, il while no.


            P.S. E' tutta teoria!
            PP.SS. Di programmazione non ne so una mazza nemmeno io! :grin:
            www.hattrick.org
            www.htita.it
            www.htitastats.com

            Comment


            • #21
              Originariamente Scritto da MaD

              Caro Danielino, c'era bisogno di provare a compilare? Armano NON sarebbe fiero di te. :grin:

              Tornando alla domanda originale, la differenza fra i due cicli sta nel modo in cui viene incrementata la variabile: nel while l'incremento si trova all'interno degli statement e viene eseguita dopo gli statement, nel for invece si trova all'esterno; questo spiega il comportamento con il continue: e' chiaro che se all'interno degli statement c'e' un'operazione che fa saltare le istruzioni successive, il for incrementa, il while no.


              P.S. E' tutta teoria!
              PP.SS. Di programmazione non ne so una mazza nemmeno io! :grin:
              Allora c'era bisogno di compilare? Certo, perchè non ero sicuro delle regole di visibilità. E' ovvio che mi aspettavo si comportasse così (altrimenti non avrei pensato a una cosa del genere), ma non ne avevo la certezza perchè non era ovvia la copertura della variabile. Non darmi a bere che tu eri sicuro del risultato perchè conoscendoti non ci crederei mai. Per le spiegazioni: grazie al razzo, non hai fatto altro che riprendere i post che sono stati fatti prima del tuo e poi commentare un po' il mio codice (i cui commenti erano impliciti). Ma che cosa hai aggiunto alla discussione? Zero! Quindi Manuelino diciamo che potevi evitare di postare...
              "il 9-10 marzo, ho letto su un sito che dice che chi scarica film/mp3 con p2p (anche da casa per uso personale), le forze armate lo attaccano"
              da it.comp.software.p2p (marzo 04)

              Comment


              • #22
                Originariamente Scritto da Ellen
                ho trovato la soluzione su suiggerimento di dansolo


                1. se non inizializzi quella a nel for nemmeno compila -.-

                Più che inizializzazione si tratta di una dichiarazione, perchè l'inizializzazione avviene quando la pongo uguale a zero. Effetttivamente nel trascrivere mi sono dimenticato il tipo di variabile: oops Cmq il significato era ovvio.
                "il 9-10 marzo, ho letto su un sito che dice che chi scarica film/mp3 con p2p (anche da casa per uso personale), le forze armate lo attaccano"
                da it.comp.software.p2p (marzo 04)

                Comment


                • #23
                  Ho trovato conferma teorica, oltrechè pratica, al ragionamento.
                  Direttamente dal Library MSDN:


                  The for-init-statement is commonly used to declare and initialize loop-index variables. The expression1 is often used to test for loop-termination criteria. The expression2 is commonly used to increment loop indices.


                  [...]


                  The following for loop:


                  for( for-init-statement; expression1; expression2 )
                  {
                  // Statements
                  }


                  is equivalent to the following while loop:


                  for-init-statement;
                  while( expression1 )
                  {
                  // Statements
                  expression2;
                  }


                  Questo secondo Microsoft che come sappiamo non rispetta gli standard. Secondo lo standard (cercando e ricercando) invece una differenza c'è. Se io scrivo


                  for (int i = 0; i < n; i++)


                  la variabile i esiste *solo* all'interno del ciclo for, come avevo precedentemente ipotizzato.
                  "il 9-10 marzo, ho letto su un sito che dice che chi scarica film/mp3 con p2p (anche da casa per uso personale), le forze armate lo attaccano"
                  da it.comp.software.p2p (marzo 04)

                  Comment


                  • #24
                    prima dell'università cosa facevi ellen?

                    Comment

                    Working...
                    X