Visualizzazione dei risultati da 1 a 3 su 3

Discussione: ciclo for in C

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1

    ciclo for in C

    Ciao a tutti.
    Sono un principiante e vorrei sapere perchè il seguente ciclo for in C non funziona o meglio quando si esegue il debug l'istruzione non viene eseguita ed il ciclo termina:

    #include <stdio.h>
    main()
    {
    int i;
    for(i=50;i<3;i--)
    printf("%d",i);
    }


    mentre il seguente funziona:

    #include <stdio.h>
    main()
    {
    int i;
    for(i=1;i<50;i++)
    printf("%d",i);
    }

    ciao a tutti e grazie !!!

  2. #2
    codice:
    #include <stdio.h> 
    main() 
    { 
      int i; 
      for(i=50;i<3;i--) 
         printf("%d",i); 
    }
    stai dicendo al programma:

    1) i=50
    2) finchè i (che inizialmente vale 50) è minore di 3 condizione che
    non lascia iniziare il ciclo perchè 50 non è < 3.
    3) printf("%d", i);
    4) i--;


    codice:
    #include <stdio.h> 
    main() 
    { 
      int i; 
      for(i=50;i>3;i--) 
         printf("%d",i); 
    }
    questo invece è corretto

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Perchè la condizione è falsa fin da subito.

    Questa è la sintassi del ciclo for:

    codice:
    for(<inizializzazione>; <guardia>; <incremento>) [sequenza];
    Dove

    <inizializzazione> indica l'inizializzazione delle variabili
    <guardia> è la condizione di permanenza all'interno del ciclo
    <incremento> indica l'entità di incremento ad ogni ciclo della variabile
    [sequenza] è una sequenza di istruzioni da eseguire ripetutamente.


    Il ciclo si ripete finchè la condizione della <guardia> rimane vera ed esce quando diventa falsa.

    L'incremento può essere positivo o negativo, ossia la variabile può essere incrementata o decrementata ad ogni ciclo secondo quanto specificato.

    Nel tuo caso, il primo for inizializza la variabile 'i' a 50, poi viene effettuato il test (i<3) che risulta falso quindi il ciclo esce immediatamente.


    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

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.