ciao a tutti, vorrei sapere se è lecito dichiarare una variabile in un ciclo c++.
Ad esempio è corretto scrivere un ciclo come questo?
codice:for(int i=0;i<8;i++){ int valore; vett[i]=valore;}
ciao a tutti, vorrei sapere se è lecito dichiarare una variabile in un ciclo c++.
Ad esempio è corretto scrivere un ciclo come questo?
codice:for(int i=0;i<8;i++){ int valore; vett[i]=valore;}
No, perchè valore non è inizializzato
Per essere lecito, lo e'.
L'inizializzazione e' un'altra storia.
No MP tecnici (non rispondo nemmeno!), usa il forum.
si puo essere anche corretto,ma se inizializzi int valore=0, ogni volta che lui ricicla riporta sempre il valore a 0, percio n può essere utile a niente,perchè praticamente la variabile valore riceverebbe solo l'ultimo valore uscendo dal ciclo...
La variabile viene usata come un contatore del ciclo, non e' vero che ad ogni loop la variabile viene reinizializzata a 0, infatti :Originariamente inviato da pat87
si puo essere anche corretto,ma se inizializzi int valore=0, ogni volta che lui ricicla riporta sempre il valore a 0, percio n può essere utile a niente,perchè praticamente la variabile valore riceverebbe solo l'ultimo valore uscendo dal ciclo...
Il primo termine del for e' l' inizializzatore, viene eseguito solo ad inizio ciclo;
Il secondo termine e' la condizione di riciclo, se quest' ultima non e' vera ( != 0 ) il ciclo viene terminato.
Il terzo termine e' un istruzione che viene eseguita ad ogni loop, solitamente per incrementare un contatore.
Quindi, riassumendo, dichiarare una varbiabile in un ciclo for e' piu' che lecito ed e' una tecnica largamente utilizzata.
PS : Ovviamente la variabile cosi' dichiarata funge da contatore e va' fuori scope non appena il ciclo e' terminato e viene di conseguenza distrutta.
PPS : Penso di aver frainteso la richiesta, io stavo parlando della variabile i , lascio scritto ugualmente.
si ma io parlavo della variabile valore,se la inizializziamo uguale a 0 rimarrà sempre ad ogni ciclo 0 a meno che n la cambiamo durante il programma,ma ogni volta che ricicla il for ricambierà cn l'ultimo valore.
Ma se non la inizializzi a zero, il valore è praticamente casuale.Originariamente inviato da pat87
si ma io parlavo della variabile valore,se la inizializziamo uguale a 0 rimarrà sempre ad ogni ciclo 0 a meno che n la cambiamo durante il programma,ma ogni volta che ricicla il for ricambierà cn l'ultimo valore.
Dipende da cosa vuoi fare, ma è sempre meglio inizializzare a zero, per non trovarsi valori come -998776
correggi con:Originariamente inviato da menphisx
se non la inizializzi a zero, il valore è praticamente casuale.
se non la inizializzi ad un valore, il valore è indefinito.
;-)
Grazie della correzione
(Pignolo )