Δηλώσεις υπό όρους σε C: If, Else, Nested If with Example
⚡ Έξυπνη Σύνοψη
Οι εντολές υπό όρους στη C ελέγχουν τη ροή ενός προγράμματος εκτελώντας μπλοκ κώδικα μόνο όταν μια δοκιμασμένη συνθήκη αξιολογηθεί ως αληθής, επιτρέποντας τη λήψη αποφάσεων μέσω κατασκευών if, if-else, nested και else-if ladder.

Τι είναι μια υπό όρους δήλωση στο C;
Οι εντολές υπό όρους στον προγραμματισμό C χρησιμοποιούνται για τη λήψη αποφάσεων με βάση τις συνθήκες. Οι εντολές υπό όρους εκτελούνται διαδοχικά όταν δεν υπάρχει συνθήκη γύρω από τις εντολές. Εάν θέσετε κάποια συνθήκη για ένα μπλοκ εντολών, η ροή εκτέλεσης μπορεί να αλλάξει με βάση το αποτέλεσμα που αξιολογείται από τη συνθήκη. Αυτή η διαδικασία ονομάζεται λήψη αποφάσεων στη 'C'.
Σε αντίθεση με βρόχοι σε C ότι ο επαναλαμβανόμενος κώδικας, οι υπό όρους δηλώσεις επιλέγουν μία διαδρομή.
Στον προγραμματισμό «C» οι εντολές υπό όρους είναι δυνατές με τη βοήθεια των ακόλουθων δύο δομών:
- Εάν δήλωση
- Δήλωση if-else
Ονομάζεται επίσης ως διακλάδωση καθώς ένα πρόγραμμα αποφασίζει ποια εντολή θα εκτελεστεί με βάση το αποτέλεσμα της αξιολογούμενης συνθήκης.
Εάν δήλωση
Είναι μια από τις ισχυρές δηλώσεις υπό όρους. Εάν η δήλωση είναι υπεύθυνη για την τροποποίηση της ροής εκτέλεσης ενός προγράμματος. Αν η πρόταση χρησιμοποιείται πάντα με μια συνθήκη. Η συνθήκη αξιολογείται πρώτα πριν από την εκτέλεση οποιασδήποτε εντολής μέσα στο σώμα του If. Η σύνταξη για την εντολή if είναι η εξής:
if (condition)
instruction;
Η συνθήκη αξιολογείται είτε ως αληθής είτε ως ψευδής. Το True είναι πάντα μια μη μηδενική τιμή και το false είναι μια τιμή που περιέχει μηδέν. Οι εντολές μπορεί να είναι μια μεμονωμένη εντολή ή ένα μπλοκ κώδικα που περικλείεται από σγουρά άγκιστρα { }.
Το παρακάτω πρόγραμμα απεικονίζει τη χρήση του if construct στον προγραμματισμό «C»:
#include<stdio.h> int main() { int num1=1; int num2=2; if(num1<num2) //test-condition { printf("num1 is smaller than num2"); } return 0; }
Παραγωγή:
num1 is smaller than num2
Το παραπάνω πρόγραμμα απεικονίζει τη χρήση της κατασκευής if για τον έλεγχο της ισότητας δύο αριθμών.
- Στο παραπάνω πρόγραμμα έχουμε αρχικοποιήσει δύο μεταβλητές με num1, num2 με τιμή 1, 2 αντίστοιχα.
- Στη συνέχεια, χρησιμοποιήσαμε το if με μια δοκιμαστική έκφραση για να ελέγξουμε ποιος αριθμός είναι ο μικρότερος και ποιος ο μεγαλύτερος. Χρησιμοποιήσαμε μια σχεσιακή έκφραση στην κατασκευή if. Εφόσον η τιμή του num1 είναι μικρότερη από το num2, η συνθήκη θα αξιολογηθεί ως true.
- Έτσι θα εκτυπώσει τη δήλωση μέσα στο μπλοκ του If. Μετά από αυτό, ο έλεγχος θα πάει έξω από το μπλοκ και το πρόγραμμα θα τερματιστεί με ένα επιτυχημένο αποτέλεσμα.
Σχετικός Operaκορμοί
Η C έχει έξι σχεσιακούς τελεστές που μπορούν να χρησιμοποιηθούν για τη διαμόρφωση μιας λογικής έκφρασης για τη λήψη μιας απόφασης και τον έλεγχο συνθηκών, η οποία επιστρέφει true ή false:
<— λιγότερο από<=— μικρότερο ή ίσο με>— μεγαλύτερο από>=— μεγαλύτερο ή ίσο με==— ίσο με!=— δεν είναι ίσο με
Παρατηρήστε ότι το ίσο τεστ (==) είναι διαφορετικό από τον τελεστή εκχώρησης (=) επειδή είναι ένα από τα πιο συνηθισμένα προβλήματα που αντιμετωπίζει ένας προγραμματιστής ανακατεύοντάς τα.
Για παράδειγμα:
int x = 41; x =x+ 1; if (x == 42) { printf("You succeed!");}
Έξοδος:
You succeed
Λάβετε υπόψη ότι μια συνθήκη που αποτιμάται σε μη μηδενική τιμή θεωρείται αληθής.
Για παράδειγμα:
int present = 1; if (present) printf("There is someone present in the classroom \n");
Παραγωγή:
There is someone present in the classroom
Η δήλωση If-Else
Η εντολή if-else είναι μια εκτεταμένη έκδοση της εντολής If. Η γενική μορφή της εντολής if-else έχει ως εξής:
if (test-expression)
{
True block of statements
}
Else
{
False block of statements
}
Statements;
Σε αυτόν τον τύπο κατασκευής, εάν η τιμή της έκφρασης δοκιμής είναι αληθής, τότε θα εκτελεστεί το μπλοκ δηλώσεων true. Εάν η τιμή της έκφρασης δοκιμής είναι ψευδής, τότε θα εκτελεστεί το μπλοκ δηλώσεων false. Σε κάθε περίπτωση, μετά την εκτέλεση, ο έλεγχος θα μεταφερθεί αυτόματα στις δηλώσεις που εμφανίζονται εκτός του μπλοκ του If.
Τα ακόλουθα προγράμματα απεικονίζουν τη χρήση της κατασκευής if-else:
Θα αρχικοποιήσουμε μια μεταβλητή με κάποια τιμή και θα γράψουμε ένα πρόγραμμα για να προσδιορίσουμε εάν η τιμή είναι μικρότερη από δέκα ή μεγαλύτερη από δέκα.
Ας αρχίσουμε.
#include<stdio.h> int main() { int num=19; if(num<10) { printf("The value is less than 10"); } else { printf("The value is greater than 10"); } return 0; }
Παραγωγή:
The value is greater than 10
- Αρχικοποιήσαμε μια μεταβλητή με τιμή 19. Πρέπει να βρούμε αν ο αριθμός είναι μεγαλύτερος ή μικρότερος από 10 χρησιμοποιώντας ένα πρόγραμμα 'C'. Για να γίνει αυτό, χρησιμοποιήσαμε την κατασκευή if-else.
- Εδώ έχουμε δώσει μια συνθήκη num<10 επειδή πρέπει να συγκρίνουμε την τιμή μας με το 10.
- Όπως μπορείτε να δείτε το πρώτο μπλοκ είναι πάντα ένα αληθινό μπλοκ που σημαίνει ότι, εάν η τιμή της δοκιμαστικής έκφρασης είναι αληθής, τότε θα εκτελεστεί το πρώτο μπλοκ που είναι το If,.
- Το δεύτερο μπλοκ είναι ένα άλλο μπλοκ. Αυτό το μπλοκ περιέχει τις εντολές που θα εκτελεστούν εάν η τιμή της δοκιμαστικής έκφρασης γίνει ψευδής. Στο πρόγραμμά μας, η τιμή του num είναι μεγαλύτερη από δέκα, επομένως η συνθήκη δοκιμής γίνεται ψευδής και αλλιώς εκτελείται το μπλοκ. Έτσι, η έξοδος μας θα είναι από ένα μπλοκ else που είναι "Η τιμή είναι μεγαλύτερη από 10". Μετά το if-else, το πρόγραμμα θα τερματιστεί με ένα επιτυχημένο αποτέλεσμα.
Στον προγραμματισμό «C» μπορούμε να χρησιμοποιήσουμε πολλαπλές δομές if-else μεταξύ τους, οι οποίες αναφέρονται ως ένθεση εντολών if-else.
Εκφράσεις υπό όρους
Ένας άλλος τρόπος για να εκφράσουμε μια πρόταση if-else είναι εισάγοντας τον τελεστή ?:. Σε μια υπό συνθήκη έκφραση, ο τελεστής ?: έχει μόνο μία πρόταση που σχετίζεται με το if και το else.
Για παράδειγμα:
#include <stdio.h> int main() { int y; int x = 2; y = (x >= 6) ? 6 : x;/* This is equivalent to: if (x >= 5) y = 5; else y = x; */ printf("y =%d ",y); return 0;}
Παραγωγή:
y =2
Ένθετες δηλώσεις If-else
Όταν απαιτείται μια σειρά αποφάσεων, χρησιμοποιείται ένθετο if-else. Ένθεση σημαίνει χρήση μιας κατασκευής if-else μέσα σε μια άλλη.
Ας γράψουμε ένα πρόγραμμα για να απεικονίσουμε τη χρήση του ένθετου if-else.
#include<stdio.h> int main() { int num=1; if(num<10) { if(num==1) { printf("The value is:%d\n",num); } else { printf("The value is greater than 1"); } } else { printf("The value is greater than 10"); } return 0; }
Παραγωγή:
The value is:1
Το παραπάνω πρόγραμμα ελέγχει εάν ένας αριθμός είναι μικρότερος ή μεγαλύτερος από το 10 και εκτυπώνει το αποτέλεσμα χρησιμοποιώντας ένθετη κατασκευή if-else.
- Αρχικά, έχουμε δηλώσει μια μεταβλητή num με τιμή 1. Στη συνέχεια χρησιμοποιήσαμε την κατασκευή if-else.
- Στην εξωτερική συνθήκη if-else, η παρεχόμενη συνθήκη ελέγχει αν ένας αριθμός είναι μικρότερος από 10. Εάν η συνθήκη είναι αληθής, τότε και μόνο τότε θα εκτελεστεί το εσωτερικό μπλοκ. Σε αυτήν την περίπτωση, η συνθήκη είναι αληθής, επομένως το εσωτερικό μπλοκ υποβάλλεται σε επεξεργασία.
- Στο εσωτερικό μπλοκ, έχουμε και πάλι μια συνθήκη που ελέγχει εάν η μεταβλητή μας περιέχει την τιμή 1 ή όχι. Όταν μια συνθήκη είναι αληθής, τότε θα επεξεργαστεί το μπλοκ If, διαφορετικά θα επεξεργαστεί ένα μπλοκ else. Σε αυτήν την περίπτωση, η συνθήκη είναι αληθής, επομένως το μπλοκ If εκτελείται και η τιμή εκτυπώνεται στην οθόνη εξόδου.
- Το παραπάνω πρόγραμμα θα εκτυπώσει την τιμή μιας μεταβλητής και θα τερματίσει με επιτυχία.
Δοκιμάστε να αλλάξετε την τιμή του μεταβλητή δείτε πώς συμπεριφέρεται το πρόγραμμα.
ΣΗΜΕΙΩΣΗ: Στην ένθετη συνάρτηση if-else, πρέπει να είμαστε προσεκτικοί με την εσοχή, επειδή σε αυτήν τη διαδικασία εμπλέκονται πολλαπλές δομές if-else, επομένως καθίσταται δύσκολο να κατανοήσουμε τις μεμονωμένες δομές. Η σωστή εσοχή διευκολύνει την ανάγνωση του προγράμματος.
Ένθετες δηλώσεις Else-if
Το ένθετο else-if χρησιμοποιείται όταν απαιτούνται αποφάσεις πολλαπλών διαδρομών.
Η γενική σύνταξη του τρόπου με τον οποίο κατασκευάζονται αλλιώς οι σκάλες στον προγραμματισμό «C» είναι η εξής:
if (test - expression 1) { statement1; } else if (test - expression 2) { Statement2; } else if (test - expression 3) { Statement3; } else if (test - expression n) { Statement n; } else { default; } Statement x;
Αυτός ο τύπος δομής είναι γνωστός ως σκάλα else-if. Αυτή η αλυσίδα γενικά μοιάζει με σκάλα, επομένως ονομάζεται και σκάλα else-if. Οι εκφράσεις δοκιμής αξιολογούνται από πάνω προς τα κάτω. Κάθε φορά που βρίσκεται μια αληθής έκφραση δοκιμής, εκτελείται η εντολή που σχετίζεται με αυτήν. Όταν όλες οι n εκφράσεις δοκιμής γίνουν ψευδείς, τότε εκτελείται η προεπιλεγμένη εντολή else.
Ας δούμε την πραγματική εργασία με τη βοήθεια ενός προγράμματος.
#include<stdio.h> int main() { int marks=83; if(marks>75){ printf("First class"); } else if(marks>65){ printf("Second class"); } else if(marks>55){ printf("Third class"); } else{ printf("Fourth class"); } return 0; }
Παραγωγή:
First class
Το παραπάνω πρόγραμμα εκτυπώνει τον βαθμό σύμφωνα με τους βαθμούς που βαθμολογούνται σε ένα τεστ. Έχουμε χρησιμοποιήσει την κατασκευή της κλίμακας else-if στο παραπάνω πρόγραμμα.
- Αρχικοποιήσαμε μια μεταβλητή με σημάδια. Στη δομή της κλίμακας else-if, έχουμε παράσχει διάφορες συνθήκες.
- Η τιμή από τα σημάδια της μεταβλητής θα συγκριθεί με την πρώτη συνθήκη, δεδομένου ότι είναι αλήθεια ότι η δήλωση που σχετίζεται με αυτήν θα εκτυπωθεί στην οθόνη εξόδου.
- Εάν η πρώτη συνθήκη δοκιμής αποδειχθεί ψευδής, τότε συγκρίνεται με τη δεύτερη συνθήκη.
- Αυτή η διαδικασία θα συνεχιστεί μέχρι να αξιολογηθούν όλες οι εκφράσεις, διαφορετικά ο έλεγχος θα βγει από την κλίμακα else-if και θα εκτυπωθεί η προεπιλεγμένη εντολή.
Δοκιμάστε να τροποποιήσετε την τιμή και παρατηρήστε την αλλαγή στην έξοδο.





