Η απόφαση IF

Η πρόταση if χρησιμοποιείται γιά τη λήψη αποφάσεων διακλάδωσης της ροής 
εκτέλεσης ενός προγράμματος. Η πρόταση εξηγείται με τη βοήθεια του 
προγράμματος που είναι αποθηκευμένο στο αρχείο IFELSE.C. 

Κατ΄ αρχή σημειώνουμε οτι το πρόγραμμα αποτελέιται από μιά επανάληψη for 
που περιέχει μιάν ακολουθία δύο προτάσεων if. Πρέπει να είναι προφανές οτι η 
επανάληψη θα εκτελεστεί 10 φορές.

Ας ασχοληθούμε με την πρώτη πρόταση if. Ξεκινά με τη λέξη κλειδί if 
ακολουθούμενη από τη συνθήκη απόφασης μέσα σε παρενθέσεις. Αν η συνθήκη 
είναι αληθής τότε η σύνθετη πρόταση που ακολουθεί εκτελείται αλλοιώς όχι. Ο 
ορισμός της σύνθετης πρότασης είναι ίδιος με αυτό της επανάληψης. Η σύνταξη 
επομένως της πρότασης if είναι 

if (έκφραση) {
   πρόταση; 
   ...
   πρόταση;
}

αλλά επειδή στο συγκεκριμένο παράδειγμα η σύνθετη πρόταση περιέχει μόνο μία 
πρόταση οι αγκύλες παραλείπονται. Η συνθήκη απόφασης έχει ακριβώς την ίδια 
σύνταξη με τη συνθήκη ελέγχου των επεναλήψεων. Σημειώστε οτι το διπλό ίσον 

data == 2

ισοδυναμεί με τη λογική ισότητα, δηλαδή εξετάζει την ισότητα ανάμεσα στη 
τρέχουσα τιμή της μεταβλητής data και στη τιμή 2.  Προσοχή οτι το απλό ίσον  

data = 2

αντιστοιχεί στην εκχώρηση της τιμής 2 στη μεταβλητή data. Τα ζητήματα 
σχετικά με τις λογικές και άλλες εκφράσεις εξετάζονται με λεπτομέρεια στο 
επόμενο κεφάλαιο.
Η απόφαση IF-ELSE

Η δεύτερη πρόταση 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.

Περιεχόμενα Κεφαλαίου