RISOLTO Domanda linguaggio C

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Matteo34

Nuovo Utente
Messaggi
104
Reazioni
3
Punteggio
45
Scusate avrei una domanda sul linguaggio C. Vorrei sapere la differenza tra il ciclo for e il ciclo while; cioè il ciclo for esegue un blocco di istruzioni finché la variabile inserita sodisfa il controllo come il while no?

Se io scrivo questo:
Codice:
for(i=0; i=10; i++){
printf("%d",i); }
E scrivo questo:
Codice:
i=0;
c = i;
while(c = 10){
i ++;
printf("%d",i);
}

Che cosa cambia tra il primo e il secondo codice oltre ad usare una variabile in più è un'altro ciclo, il risultato e lo stesso;
Qualcuno mi potrebbe spiegare perché scegliere si usare il for e non il while grazie
 
Intanto entrambi i codici son sbagliati: nel for manca l'istanziazione della variabile i, nel while invece risulta in un ciclo infinito (visto che c sarà sempre = 0, quindi sempre minore di 10).
In generale, un qualsiasi ciclo for può essere convertito in un ciclo while e viceversa. Diciamo che il for lo si usa se il numero di iterazioni è fisso / conosciuto precedentemente, il ciclo while altrimenti o quando la condizione da rispettare è un semplice booleano ( while(variabile), dove variabile verrà messa a falsa quando una certa condizione è stata trovata, per esempio quando col while scorri un array (di cui non sai a priori la grandezza) finchè non trovi il valore che ti viene chiesto di trovare)
 
Intanto entrambi i codici son sbagliati: nel for manca l'istanziazione della variabile i, nel while invece risulta in un ciclo infinito (visto che c sarà sempre = 0, quindi sempre minore di 10).
In generale, un qualsiasi ciclo for può essere convertito in un ciclo while e viceversa. Diciamo che il for lo si usa se il numero di iterazioni è fisso / conosciuto precedentemente, il ciclo while altrimenti o quando la condizione da rispettare è un semplice booleano ( while(variabile), dove variabile verrà messa a falsa quando una certa condizione è stata trovata, per esempio quando col while scorri un array (di cui non sai a priori la grandezza) finchè non trovi il valore che ti viene chiesto di trovare)
Grazie ho capito, i codici li ho scritti molto velocemente e da tell, manco me ne ero accorto degli errori
 
Ovviamente il ciclo for ti consente 3 operaizoni: inizializzazioni, condizioni da verificare per ciclo, operazioni da fare per ciclo. Non sei oobligato a usarle tutte e tre ( for (;;); ) ma nel tuo caso fa l'incremento (o altre operazioni) per ogni ciclo, nel while, verifichi solo la condizione, e le operazioni le fai dentro. Per entrambi esci quando vuoi con break;
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top