Quote:
Originariamente inviato da Ledmauro
1)Il libro parla quando vi è "while ( (grade = getchat() != EOF) {", che effettua una conversione da carattere ad intero, ma in poche parole che cosa fa?
Non si potrebbe fare in questo modo:
while (grade == 0101) {
Ovvero, fino a quando non si inserisce 0101 continua con lo switch? Perchè mi dovrei complicare la vita xD?
|
L'unica cosa di particolare è che la getchar() restituisce un int e non un char. In pratica ti può restituire un codice carattere da 0 a 255 oppure EOF, che vale -1 (ed è poi in pratica per questo motivo che deve ritornare un int invece che un char). Tu però una volta testato che non è EOF, potresti anche fare un cast a char, se ti serve.
Quote:
Originariamente inviato da Ledmauro
2)A quanto ho capito, lo switch permette di eseguire varie scelte. Ma che differenza c'è con l'IF?Non potrei mettere per esempio:
if (grade == a||A) { \*dove || se non sbaglio dovrebbe stare per OR*\
acount+=1;
}
Non è uguale?
|
Lo switch è un costrutto per fare, in modo più chiaro e pulito, sostanzialmente la stessa cosa di una catena di 'if'. Inoltre un compilatore può anche ottimizzare uno switch.
Avresti anche potuto fare ad esempio:
Codice:
if (grade == 'a' || grade == 'A') {
acount+=1;
}