Η δομή ελέγχου if…else στην γλώσσα C++ χρησιμοποιείται για να εκτελέσει διαφορετικό κώδικα, ανάλογα με την αληθή ή ψευδή συνθήκη που ελέγχεται. Η σύνταξη της δομής if…else είναι η εξής:
if (condition) { // Κώδικας που εκτελείται αν η συνθήκη είναι αληθής } else { // Κώδικας που εκτελείται αν η συνθήκη είναι ψευδής }
Όταν η συνθήκη (condition) είναι αληθής, εκτελείται ο κώδικας μέσα στο πρώτο μπλοκ (μετά την προσπέλαση της συνθήκης). Αντίθετα, όταν η συνθήκη είναι ψευδής, εκτελείται ο κώδικας μέσα στο μπλοκ else.
Η δομή if…else επιτρέπει την εκτέλεση ενός μόνο μπλοκ κώδικα, είτε το πρώτο είτε το δεύτερο, ανάλογα με την αποτίμηση της συνθήκης. Η συνθήκη μπορεί να είναι οποιαδήποτε έκφραση που αξιολογείται σε λογική (boolean) τιμή, δηλαδή true ή false.
Η δομή if…else είναι ιδιαίτερα χρήσιμη για την παρακολούθηση συνθηκών και τη λήψη αποφάσεων μέσα στο πρόγραμμα, επιτρέποντας την εκτέλεση διαφορετικού κώδικα, ανάλογα με την κατάσταση.
Παραδείγματα:
#include <iostream> int main() { int x = 5; // Έλεγχος αν ο x είναι μεγαλύτερος από 10 if (x > 10) { std::cout << "x is greater than 10." << std::endl; } // Αλλιώς, έλεγχος αν ο x είναι μεγαλύτερος από 5 αλλά μικρότερος ή ίσος με 10 else if (x > 5) { std::cout << "x is greater than 5 but less than or equal to 10." << std::endl; } // Αλλιώς, ο x είναι μικρότερος ή ίσος με 5 else { std::cout << "x is less than or equal to 5." << std::endl; } return 0; }
Έξοδος:
x is less than or equal to 5.
Ο παραπάνω κώδικας ελέγχει την τιμή μιας μεταβλητής x
και εκτυπώνει ανάλογα μηνύματα ανάλογα με τη συνθήκη που ικανοποιείται.
Αν το x
είναι μεγαλύτερο από 10, τότε εκτυπώνεται το μήνυμα “x is greater than 10.”.
Αν η προηγούμενη συνθήκη δεν ικανοποιείται αλλά το x
είναι μεγαλύτερο από 5 αλλά μικρότερο ή ίσο με 10, τότε εκτυπώνεται το μήνυμα “x is greater than 5 but less than or equal to 10.”.
Αν καμία από τις παραπάνω συνθήκες δεν ικανοποιείται, τότε εκτυπώνεται το μήνυμα “x is less than or equal to 5.”.
Σε αυτόν τον κώδικα, το x
έχει αρχικοποιηθεί με την τιμή 5, αλλά μπορείτε να αλλάξετε την τιμή της μεταβλητής x
για να ελέγξετε την συμπεριφορά των συνθηκών και των μηνυμάτων που εκτυπώνονται.
Όπως ήδη γνωρίζετε, στη γλώσσα προγραμματισμού C++, μπορείτε να χρησιμοποιήσετε τις συνήθεις λογικές συνθήκες που αντιστοιχούν στις μαθηματικές σχέσεις. Αυτές οι συνθήκες περιλαμβάνουν:
- Μικρότερο από:
a < b
- Μικρότερο ή ίσο με:
a <= b
- Μεγαλύτερο από:
a > b
- Μεγαλύτερο ή ίσο με:
a >= b
- Ίσο με:
a == b
- Διαφορετικό από:
a != b
Αυτές οι συνθήκες μπορούν να χρησιμοποιηθούν για να ελεγχθούν διάφορες περιπτώσεις και να εκτελεστούν διάφορες ενέργειες ανάλογα με την απόφαση που προκύπτει.
[adinserter block=”2″]
Ο όρος “if” χρησιμοποιείται στη C++ για να δηλώσει ένα μπλοκ κώδικα που θα εκτελεστεί μόνο αν μια συγκεκριμένη συνθήκη είναι αληθής.
Ο όρος “else” χρησιμοποιείται για να δηλώσει ένα μπλοκ κώδικα που θα εκτελεστεί μόνο αν η ίδια συνθήκη που δοκιμάστηκε με το “if” είναι ψευδής.
Ο όρος “else if” χρησιμοποιείται για να δηλώσει μια νέα συνθήκη προς δοκιμή, αν η πρώτη συνθήκη που ελέγχθηκε με το “if” ή οποιοδήποτε προηγούμενο “else if” ήταν ψευδής.
Ο όρος “switch” χρησιμοποιείται για να δηλώσει πολλά εναλλακτικά μπλοκ κώδικα, τα οποία θα εκτελεστούν ανάλογα με την τιμή μιας μεταβλητής ή εκφράσεως. Η τιμή αυτή συγκρίνεται με διάφορες περιπτώσεις (cases), και εκτελείται το αντίστοιχο μπλοκ κώδικα για την πρώτη ταιριαστή περίπτωση.
Η δομή της εντολής if στη γλώσσα C++ έχει την ακόλουθη σύνταξη:
if (condition) { // κώδικας που εκτελείται αν η συνθήκη είναι αληθής }
Η συνθήκη (condition) πρέπει να είναι μια λογική έκφραση που αξιολογείται σε αληθή (true) ή ψευδή (false). Εάν η συνθήκη είναι αληθής, τότε ο κώδικας που βρίσκεται στο εσωτερικό του block εκτελείται. Εάν η συνθήκη είναι ψευδής, τότε ο κώδικας στο εσωτερικό του block παραλείπεται και συνεχίζεται η εκτέλεση του κώδικα μετά το block.
Μπορούν να χρησιμοποιηθούν πολλές δομές if μαζί με τη χρήση του else if statement, που επιτρέπει να ελεγχθούν πολλές συνθήκες.
Παράδειγμα:
#include <iostream> int main() { int x = 13; // Ορισμός μεταβλητής x με τιμή 13 int y = 6; // Ορισμός μεταβλητής y με τιμή 6 if (x > y) { // Έλεγχος αν η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y std::cout << "x is greater than y" << std::endl; // Εκτύπωση μηνύματος ότι η τιμή της μεταβλητής x είναι μεγαλύτερη από την τιμή της μεταβλητής y } return 0; }
Ο παραπάνω κώδικας εκτελεί την ακόλουθη λειτουργία:
- Δημιουργεί δύο μεταβλητές, την
x
με τιμή 13 και τηνy
με τιμή 6. - Εκτελεί μια συνθήκη
if
για να ελέγξει αν η τιμή της μεταβλητήςx
είναι μεγαλύτερη από την τιμή της μεταβλητήςy
. - Αν η συνθήκη είναι αληθής, τότε εκτυπώνει το μήνυμα “x is greater than y” στην οθόνη.
- Τελικά, η
main
συνάρτηση επιστρέφει την τιμή 0, ολοκληρώνοντας έτσι την εκτέλεση του προγράμματος.
Συνολικά, ο κώδικας ελέγχει αν η τιμή της μεταβλητής x
είναι μεγαλύτερη από την τιμή της μεταβλητής y
και εκτυπώνει το αντίστοιχο μήνυμα στην οθόνη αν η συνθήκη ισχύει.
Έξοδος:
x is greater than y
Η δομή της εντολής else στη γλώσσα C++ έχει την ακόλουθη σύνταξη:
if (condition) { // κώδικας που εκτελείται αν η συνθήκη είναι αληθής } else { // κώδικας που εκτελείται αν η συνθήκη είναι ψευδής }
Η else είναι προαιρετική και μπορεί να χρησιμοποιηθεί για να εκτελείται κώδικας όταν η συνθήκη στην εντολή if είναι ψευδής. Ο κώδικας που βρίσκεται στο block της εντολής else εκτελείται μόνο εάν η συνθήκη στην εντολή if είναι ψευδής. Αν η συνθήκη είναι αληθής, ο κώδικας που βρίσκεται στο block της εντολής else παραλείπεται.
[adinserter block=”3″]
Ένα παράδειγμα με χρήση της εντολής else είναι το εξής:
#include <iostream> int main() { int x = 10; // Δημιουργία μιας μεταβλητής x και αρχικοποίησή της με την τιμή 10 int y = 5; // Δημιουργία μιας μεταβλητής y και αρχικοποίησή της με την τιμή 5 if (x > y) { std::cout << "x is greater than y" << std::endl; // Εκτύπωση μηνύματος ότι το x είναι μεγαλύτερο από το y } else { std::cout << "y is greater than x" << std::endl; // Εκτύπωση μηνύματος ότι το y είναι μεγαλύτερο από το x } return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος }
Ο παραπάνω κώδικας συγκρίνει δύο ακέραιες μεταβλητές x
και y
και εκτυπώνει ανάλογο μήνυμα, ανάλογα με το ποια μεταβλητή είναι μεγαλύτερη. Πιο συγκεκριμένα, αν το x
είναι μεγαλύτερο από το y
, εκτυπώνεται το μήνυμα “x is greater than y”, αλλιώς εκτυπώνεται το μήνυμα “y is greater than x”.
Σε αυτήν την περίπτωση, το x
έχει την τιμή 10 και το y
έχει την τιμή 5, οπότε η συνθήκη x > y
είναι αληθής. Έτσι, το πρόγραμμα εκτυπώνει το μήνυμα “x is greater than y” στην έξοδο.
Τέλος, το πρόγραμμα επιστρέφει την τιμή 0 για να υποδηλώσει ότι ολοκλήρωσε την εκτέλεσή του με επιτυχία.
Η δομή της εντολής else if στη γλώσσα C++ έχει την ακόλουθη σύνταξη:
if (condition1) { // κώδικας που εκτελείται αν η συνθήκη 1 είναι αληθής } else if (condition2) { // κώδικας που εκτελείται αν η συνθήκη 2 είναι αληθής } else { // κώδικας που εκτελείται αν όλες οι συνθήκες είναι ψευδείς }
Η εντολή else if χρησιμοποιείται για να ελέγξει μια νέα συνθήκη εάν η πρώτη συνθήκη (condition1) είναι ψευδής. Μπορείτε να χρησιμοποιήσετε όσες εντολές else if θέλετε πριν από την εντολή else. Η εντολή else είναι προαιρετική και εκτελείται μόνο εάν όλες οι συνθήκες είναι ψευδείς.
Ένα παράδειγμα με χρήση της εντολής else if είναι το εξής:
#include <iostream> int main() { int x = 10; int y = 5; if (x > y) { std::cout << "x is greater than y" << std::endl; // Εκτυπώνει το μήνυμα "x is greater than y" } else if (x < y) { std::cout << "y is greater than x" << std::endl; // Εκτυπώνει το μήνυμα "y is greater than x" } else { std::cout << "x is equal to y" << std::endl; // Εκτυπώνει το μήνυμα "x is equal to y" } return 0; }
[adinserter block=”4″]
Ο παραπάνω κώδικας συγκρίνει τις μεταβλητές x
και y
και εκτυπώνει ανάλογα με το αποτέλεσμα της σύγκρισης. Ακολουθεί μια περιγραφή της λειτουργίας του κώδικα:
- Ορίζονται οι μεταβλητές
x
καιy
και αρχικοποιούνται με τις τιμές 10 και 5 αντίστοιχα. - Έπειτα, γίνεται η σύγκριση των μεταβλητών με χρήση της δομής
if-else
. - Αν η τιμή της μεταβλητής
x
είναι μεγαλύτερη από την τιμή της μεταβλητήςy
, τότε εκτελείται η πρώτη πρόταση μέσα στο μπλοκ τουif
, και εκτυπώνεται το μήνυμα “x is greater than y”. - Αν η τιμή της μεταβλητής
x
είναι μικρότερη από την τιμή της μεταβλητήςy
, τότε εκτελείται η πρόταση μέσα στο μπλοκ τουelse if
, και εκτυπώνεται το μήνυμα “y is greater than x”. - Αν οι τιμές των μεταβλητών
x
καιy
είναι ίσες, τότε εκτελείται η πρόταση μέσα στο μπλοκ τουelse
, και εκτυπώνεται το μήνυμα “x is equal to y”. - Ο κώδικας ολοκληρώνεται και επιστρέφει την τιμή 0.
Συνολικά, ο κώδικας ελέγχει τη σχέση μεταξύ των μεταβλητών x
και y
και εκτυπώνει κατάλληλα μηνύματα ανάλογα με τη σύγκριση.
Η σύνταξη του τριαδικού τελεστή (ternary operator) στη γλώσσα C++ είναι η ακόλουθη:
(condition) ? true_expression : false_expression;
Ο τριαδικός τελεστής είναι ένας τελεστής που αξιολογεί μια συνθήκη και επιστρέφει μία από δύο πιθανές τιμές, ανάλογα με την αληθή ή ψευδή φύση της συνθήκης. Ο τριαδικός τελεστής μπορεί να χρησιμοποιηθεί για να αντικαταστήσει απλές δομές ελέγχου if-else και να μειώσει τον κώδικα σε μία γραμμή.
Συγκεκριμένα, ο τριαδικός τελεστής εκτελεί την αξιολόγηση της συνθήκης και επιστρέφει την τιμή της true_expression αν η συνθήκη είναι αληθής, δηλαδή αν η συνθήκη εκτελείται, και επιστρέφει την τιμή της false_expression αν η συνθήκη είναι ψευδής, δηλαδή αν η συνθήκη δεν εκτελείται.
Αυτός ο τελεστής είναι χρήσιμος όταν θέλουμε να εκχωρήσουμε μία τιμή σε μία μεταβλητή με βάση μία συνθήκη, χωρίς να χρειαστεί να χρησιμοποιήσουμε ένα if-else statement. Αυτό μπορεί να μειώσει τον κώδικα και να τον κάνει πιο συνοπτικό.
Αντί να γράψουμε:
#include <iostream> int main() { int x = 10; // Δημιουργία μιας μεταβλητής x και αρχικοποίησή της με την τιμή 10 std::string result; // Δημιουργία μιας μεταβλητής result τύπου std::string (αλφαριθμητικό) if (x > 5) { // Έλεγχος αν η τιμή της μεταβλητής x είναι μεγαλύτερη από 5 result = "x is greater than 5"; // Αν η συνθήκη είναι αληθής, αποθήκευση του μηνύματος "x is greater than 5" στην μεταβλητή result } else { result = "x is less than or equal to 5"; // Αν η συνθήκη είναι ψευδής, αποθήκευση του μηνύματος "x is less than or equal to 5" στην μεταβλητή result } std::cout << result << std::endl; // Εκτύπωση της τιμής της μεταβλητής result στην οθόνη return 0; // Επιστροφή της τιμής 0 ως ένδειξη επιτυχούς εκτέλεσης του προγράμματος }
μπορούμε να χρησιμοποιήσουμε τον τριαδικό τελεστή για να γράψουμε τον κώδικα πιο συνοπτικά:
#include <iostream> int main() { int x = 10; // Ορισμός μιας μεταβλητής x και αρχικοποίησή της με την τιμή 10 // Χρήση του τελεστή ?: για να ελέγξουμε αν η x είναι μεγαλύτερη από 5 // Εάν είναι, τότε η μεταβλητή result παίρνει την τιμή "x is greater than 5" // Αλλιώς, παίρνει την τιμή "x is less than or equal to 5" std::string result = (x > 5) ? "x is greater than 5" : "x is less than or equal to 5"; std::cout << result << std::endl; // Εκτύπωση του περιεχομένου της μεταβλητής result στην οθόνη return 0; // Επιστροφή της τιμής 0 για ορθή ολοκλήρωση του προγράμματος }
Ο παραπάνω κώδικας σε C εκτελεί τις εξής λειτουργίες:
- Δημιουργείται μια μεταβλητή
x
με τιμή 10. - Χρησιμοποιώντας τον τελεστή τριών σημείων (
?:
), ελέγχεται αν η τιμή τηςx
είναι μεγαλύτερη από 5. Εάν αυτή η συνθήκη είναι αληθής, η μεταβλητήresult
παίρνει την τιμή “x is greater than 5”, αλλιώς παίρνει την τιμή “x is less than or equal to 5”. - Εκτυπώνεται η τιμή της μεταβλητής
result
στην οθόνη, ακολουθούμενη από έναν χαρακτήρα νέας γραμμής. - Το πρόγραμμα τερματίζει και επιστρέφει την τιμή 0.
Συνολικά, ο κώδικας ελέγχει την τιμή της μεταβλητής x
και εκτυπώνει ένα μήνυμα ανάλογα με τη συνθήκη που ισχύει. Αν η x
είναι μεγαλύτερη από 5, τότε εκτυπώνεται το μήνυμα “x is greater than 5”, αλλιώς εκτυπώνεται το μήνυμα “x is less than or equal to 5”.