
Originariamente inviata da
LeleFT
Ma infatti il compilatore ti sta segnalando che le variabili non inizializzate sono r1, r2, ecc... non ff.
Il compilatore NON PUO' sapere se tali variabili verranno effettivamente inizializzate o meno: cosa accade, ad esempio, se l'utente inserisce il valore 3 per la variabile "ff" (Livello Fast Food)? Succede questo:
1) La prima if è falsa, non viene eseguito il suo corpo.
2) La seconda if è falsa, non viene eseguito il suo corpo.
3) La terza if è vera. Viene inizializzato r3; la if al suo interno non potrà mai essere vera e non si capisce che ci faccia lì (perchè se ff == 3 non potrà mai essere uguale a 4).
Poi viene eseguito if (r1 > r2)... ma r1 e r2 non sono mai state inizializzate: risultato indefinito.
La regola aurea è: quando si dichiara una variabile locale la si deve sempre inizializzare.
Ciao.
