Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [c++]Quando e come le { }

    ciao a tutti. La mia domanda risulterà un pò banale ma non capisco davvero qual è la differenza nell'usare o no le { } ad esempio in un ciclo.


    Vi faccio un esempio molto pratico
    codice:
      char ch;
      int n;
      
      cout << "\n inserisci un numero naturale ";
      cin >> n;
      cout << "\n inserisci un carattere ";
      cin >> ch;
      for (int i=1; i<=n; i++) {
        for (int j=1; j<=i; j++)
          cout << ch;
        cout << "\n";  
      }      
      cout << "\n";
    questo piccolo codice kiede prima il numero degli elementi, poi il simbolo e poi corstruisce. Se io inserisco 6 e poi come carattere $ mi stamperà un triangolo
    codice:
    $
    $$
    $$$
    $$$$
    $$$$$
    $$$$$$
    come potete notare dal codice il secondo ciclo non ha le parentesi { }. Se io metto le parentesi al secondo ciclo ,i stampa una cosa del genere
    codice:
    $
    $
    $
    $
    $
    $
    $
    $
    $
    $
    $
    $
    Allora vi kiedo...qual è la differenza? quano bisogna usare le parentesi e quando no?

    grazie per la cortese pazienza

  2. #2
    facci vedere comne le hai messe le parentesi
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    codice:
    char ch;
      int n;
      
      cout << "\n inserisci un numero naturale ";
      cin >> n;
      cout << "\n inserisci un carattere ";
      cin >> ch;
      for (int i=1; i<=n; i++) {
        for (int j=1; j<=i; j++) {
          cout << ch;
        cout << "\n";  
      }    
    }  
      cout << "\n";
    :master:
    http://codecanyon.net/category/all?ref=Manuelandro
    And I bet she told a million people that she'd stay in touch, Well all the little promises they dont mean much,When theres
    memories to be made

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Beh è molto semplice: le parentesi identificano un blocco di istruzioni che vengono considerate come una sola.
    Di conseguenza, metterle o non metterle fa differenza solamente quando si ha a che fare con un blocco composto da più di un'istruzione.
    Riprendendo il tuo esempio, senza le parentesi nell'istruzione for più esterna, esso sarebbe esattamente equivalente a questo:
    codice:
    char ch;
      int n;
      
      cout << "\n inserisci un numero naturale ";
      cin >> n;
      cout << "\n inserisci un carattere ";
      cin >> ch;
      for (int i=1; i<=n; i++)
        for (int j=1; j<=i; j++) {
          cout << ch;
          cout << "\n";     
        }
      cout << "\n";
    non farti ingannare dall'indentazione: quella serve solo a poter leggere meglio il programma.

    Questa è la sintassi dell'istruzione for:
    codice:
    for (init; test; inc) <istruzione>
    
    dove
    
    init: inizializzazione di una o più variabili;
    test: guardia del for, che continua finchè essa rimane vera;
    inc: incremento automatico di una variabile;
    <istruzione>: una istruzione (sia essa una singola istruzione o un blocco di istruzioni)
    Ovviamente per avere un blocco di istruzioni è necessario utilizzare le parentesi graffe.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5

    Re: [c++]Quando e come le { }

    Originariamente inviato da Manuelandro
    ...

    Allora vi kiedo...qual è la differenza? quano bisogna usare le parentesi e quando no?

    grazie per la cortese pazienza
    Se non ci sono le parentesi '{}', che servono a racchiudere una
    porzione di codice in un unico blocco, viene eseguita l'istruzione o la funzione successiva delimitata dal ';' successivo.

    Sfogliare uno straccio di libro ?
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  6. #6
    Originariamente inviato da Manuelandro
    codice:
    char ch;
      int n;
      
      cout << "\n inserisci un numero naturale ";
      cin >> n;
      cout << "\n inserisci un carattere ";
      cin >> ch;
      for (int i=1; i<=n; i++) {
        for (int j=1; j<=i; j++) {
          cout << ch;
        cout << ch;
      }    
    }  
      cout << "\n";
    :master:
    Allora è ovvio! Se non inserisci parentesi solo l'istruzione successiva al for viene associata ad esso, quindi se non le metti cout << ch; viene eseguita ad ogni iterazione del ciclo interno cout << ch; solo ad ogni iterazione di quello più esterno.Se le metti come le hai messe tu invece, anche cout << ch; viene associata al ciclo più interno e fa casino. Se vuoi ottenere una cosa equivalente pur mettendo le parentesi devi fare così
    codice:
    char ch;
      int n;
      
      cout << "\n inserisci un numero naturale ";
      cin >> n;
      cout << "\n inserisci un carattere ";
      cin >> ch;
      for (int i=1; i<=n; i++) {
        for (int j=1; j<=i; j++) 
        {
          cout << ch;
         }
        cout << ch;
          
    }  
      cout << "\n";
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Triplo post simultaneo...siamo troppo zelanti
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8

    Re: Re: [c++]Quando e come le { }

    Originariamente inviato da Samuele_70
    Sfogliare uno straccio di libro ?
    Ovviamente quoto al cubo
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    Originariamente inviato da unomichisiada
    Triplo post simultaneo...siamo troppo zelanti
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    La cosa piu' importante relativa all'uso delle parentesi {} in C e' capire che, se si usano, tutte le istruzioni al loro interno sono considerate come fossero una sola. Questo e' importantissimo.

    Quindi, dato che la for (ma anche la if e altri statement) lavorano con la *singola prossima istruzione*, devi fare questo ragionamento

    1) con la for voglio ripetere una sola istruzione, allora

    codice:
       for(...)
         istruzione
    2) con la for voglio ripetere piu' istruzioni, allora (dato che un blocco di istruzione e' equivalente a una sola

    codice:
       for(...)
       {
         istruzione
         istruzione
         istruzione
       }

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.