RISOLTO Domanda linguaggio C

Stato
Discussione chiusa ad ulteriori risposte.

Matteo34

Nuovo Utente
28
2
CPU
I5-2500 2.5Ghz
Dissipatore
Stock
Scheda Madre
Non specificata
Hard Disk
Hdd 500gb
RAM
8gb DDR3
Scheda Video
ATI Radeon HD 6770M
Scheda Audio
Non specificata
Monitor
1920x1080 24"
Alimentatore
Non specificato
Case
I Mac metà 2011
Periferiche
Magic Mouse, Magic Keyboard
Internet
Eolo
Sistema Operativo
MacOS High Sierra
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,513
425
CPU
Ryzen 5 3600
Dissipatore
GELID Phantom
Scheda Madre
MSI B450 Gaming Plus Max
Hard Disk
500GB m.2 + 2TB HDD
RAM
16GB Corsair LPX 3000mhz
Scheda Video
Gigabyte GTX 960 OC
Scheda Audio
Integrata
Monitor
SyncMaster 223BW
Alimentatore
Antec HCG-520M
Case
Meshify C
Internet
Gigabit Fastweb
Sistema Operativo
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
Reactions: Mursey e BAT00cent

Matteo34

Nuovo Utente
28
2
CPU
I5-2500 2.5Ghz
Dissipatore
Stock
Scheda Madre
Non specificata
Hard Disk
Hdd 500gb
RAM
8gb DDR3
Scheda Video
ATI Radeon HD 6770M
Scheda Audio
Non specificata
Monitor
1920x1080 24"
Alimentatore
Non specificato
Case
I Mac metà 2011
Periferiche
Magic Mouse, Magic Keyboard
Internet
Eolo
Sistema Operativo
MacOS High Sierra
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
 

bigendian

Nuovo Utente
138
76
Sistema Operativo
Linux
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.

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot del momento