Η δεύτερη πρόταση if στο πρόγραμμα IFELSE.C είναι όμοια με τη πρώτη με τη
διαφορά οτι μετά τη σύνθετη πρόταση του if ακολουθεί η λέξη κλειδί else και
ακόμη μία σύνθετη πρόταση. Η ερμηνεία αυτής της πρότασης είναι οτι εάν μεν η
συνθήκη απόφασης είναι αληθής τότε εκτελείται ο κλάδος του if. Αλοιώς
εκτελείται ο κλάδος του else. Έτσι μία από τις δύο σύνθετες προτάσεις θα
εκτελεστεί οπωσδήποτε. Μετά την εκτέλεση του ενός από τους δύο κλάδους το
πρόγραμμα συνεχίζει να εκτελείται από την πρώτη εντολή μετά το τέλος της
δομής if-else. Η γενική μορφή της πρότασης if-else είναι επομένως
if (έκφραση) {
πρόταση;
...
πρόταση;
}
else {
πρόταση;
...
πρόταση;
}
Τώρα είμαστε σε θέση να εξηγήσουμε την εκτέλεση του προγράμματος η οποία
φαίνεται παρακάτω.
Data is now 0, which is less than 5
Data is now 1, which is less than 5
Data is now equal to 2
Data is now 2, which is less than 5
Data is now 3, which is less than 5
Data is now 4, which is less than 5
Data is now 5, which is greater than 4
Data is now 6, which is greater than 4
Data is now 7, which is greater than 4
Data is now 8, which is greater than 4
Data is now 9, which is greater than 4
Βλέπουμε οτι έχουμε συνολικά ένδεκα (11) μηνύματα. Η συνθήκη του πρώτου if
είναι αληθής μόνο γιά την τιμή 2, έτσι ο κλάδος του πρώτου if παράγει
αποτέλεσμα μόνο μία φορά. Η συνθήκη του δεύτερου if επαληθεύεται 5 φορές,
γιά τις τιμές 0 έως 4, και τότε εκτελείται ο κλάδος if, ενώ δεν επαληθεύεται
γιά τις τιμές 5 έως 9, οπότε εκτελείται ο κλάδος else. Σημειώστε οτι όταν ο
ομετρητήε πάρει την τιμή 2 εμφανίζονται δύο μηνύματα. Αυτό συμβαίνει γιατί οι
δύο προτάσεις if βρίσκονται σε δομή ακολουθίας, άρα μετά την εκτέλεση της
πρωτης, και ανεξάρτητα από το αποτέλεσμα αυτής της εκτέλεσης, εκτελείται η
δεύτερη πρόταση if.
|