RISOLTO Domanda linguaggio C

Stato
Discussione chiusa ad ulteriori risposte.

Matteo34

Nuovo Utente
104
3
CPU
i5-10500 3.2Ghz
Dissipatore
Non specificato
Scheda Madre
Non specificata
HDD
M.2 251GB e M.2 500GB
RAM
16GB DDR4 2666mhz
GPU
Grafica Intel® UHD 630
Audio
Non specificata
Monitor
1920x1080 27"
PSU
Non specificato
Case
Non specificato
Periferiche
Nono specificato
Net
Eolo
OS
Ubuntu
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
 

rodhellas

Utente Èlite
1,522
427
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
HDD
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
GPU
Gigabyte GTX 960 OC
Audio
Integrata
Monitor
SyncMaster 223BW
PSU
Antec HCG-520M
Case
Meshify C
Net
Gigabit Fastweb
OS
Windows 10 64bit
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)
 
  • Mi piace
Reazioni: Mursey e BAT

Matteo34

Nuovo Utente
104
3
CPU
i5-10500 3.2Ghz
Dissipatore
Non specificato
Scheda Madre
Non specificata
HDD
M.2 251GB e M.2 500GB
RAM
16GB DDR4 2666mhz
GPU
Grafica Intel® UHD 630
Audio
Non specificata
Monitor
1920x1080 27"
PSU
Non specificato
Case
Non specificato
Periferiche
Nono specificato
Net
Eolo
OS
Ubuntu
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
 
U

Utente cancellato 371741

Ospite
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.

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili