Πολλές εμφωλευμένες εντολές if μπορεί να οδηγήσουν σε προβλήματα αμφισημίας (κάτι που δεν μας αρέσει καθόλου στο computer science). Είναι τα δύο προγράμματα ισοδύναμα;
lab = -1;
if (year < 1)
{ /* empty block */ }
else if (year == 1)
lab = 20;
else
lab = 0;
lab = -1;
if (year <= 1)
if (year == 1)
lab = 20;
else
lab = 0;
Ο μεταγλωττιστής αγνοεί τη στοίχιση. Βρείτε σε ποια if ανήκει το else του δεύτερου προγράμματος σύμφωνα με τον κανόνα της C, ξαναγράψτε το με αγκύλες και συγκρίνετε τα δύο προγράμματα για year ίσο με 0, 1 και 2.
Αριθμός στον οδηγό: Α6.8
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec06-dangling-else ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec06-dangling-else.html ·
Markdown (GitHub)