C Δήλωση υπό όρους: IF, IF Else και Nested IF Else με Παράδειγμα
Τι είναι μια υπό όρους δήλωση στο C;
Δηλώσεις υπό όρους στο Γ Ο προγραμματισμός χρησιμοποιούνται για τη λήψη αποφάσεων με βάση τις συνθήκες. Οι εντολές υπό όρους εκτελούνται διαδοχικά όταν δεν υπάρχει συνθήκη γύρω από τις εντολές. Εάν βάλετε κάποια συνθήκη για ένα μπλοκ εντολών, η ροή εκτέλεσης μπορεί να αλλάξει με βάση το αποτέλεσμα που αξιολογείται από τη συνθήκη. Αυτή η διαδικασία ονομάζεται λήψη αποφάσεων στο «C».
Στον προγραμματισμό «C» οι εντολές υπό όρους είναι δυνατές με τη βοήθεια των ακόλουθων δύο δομών:
1. Αν δήλωση
2. Αν-άλλο δήλωση
Ονομάζεται επίσης ως διακλάδωση καθώς ένα πρόγραμμα αποφασίζει ποια εντολή θα εκτελεστεί με βάση το αποτέλεσμα της αξιολογούμενης συνθήκης.
Εάν δήλωση
Είναι μια από τις ισχυρές δηλώσεις υπό όρους. Εάν η δήλωση είναι υπεύθυνη για την τροποποίηση της ροής εκτέλεσης ενός προγράμματος. Αν η πρόταση χρησιμοποιείται πάντα με μια συνθήκη. Η συνθήκη αξιολογείται πρώτα πριν από την εκτέλεση οποιασδήποτε εντολής μέσα στο σώμα του 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 έχει έξι σχεσιακούς τελεστές που μπορούν να χρησιμοποιηθούν για τη διατύπωση μιας Boolean έκφρασης για τη λήψη απόφασης και τον έλεγχο των συνθηκών, η οποία επιστρέφει 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 is είναι μια εκτεταμένη έκδοση του If. Η γενική μορφή του if-else είναι η εξής:
if (test-expression) { True block of statements } Else { False block of statements } Statements;
Σε αυτόν τον τύπο κατασκευής, εάν η τιμή της δοκιμαστικής έκφρασης είναι αληθής, τότε θα εκτελεστεί το αληθινό μπλοκ εντολών. Εάν η τιμή της δοκιμαστικής έκφρασης είναι false, τότε θα εκτελεστεί το false block των εντολών. Σε κάθε περίπτωση, μετά την εκτέλεση, ο έλεγχος θα μεταφερθεί αυτόματα στις δηλώσεις που εμφανίζονται έξω από το μπλοκ του 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 και το other.
Για παράδειγμα:
#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. Σε αυτήν την περίπτωση, η συνθήκη είναι αληθής, επομένως το Εάν εκτελείται ένα μπλοκ και η τιμή εκτυπώνεται στην οθόνη εξόδου.
- Το παραπάνω πρόγραμμα θα εκτυπώσει την τιμή του a μεταβλητή και βγείτε με επιτυχία.
Δοκιμάστε να αλλάξετε την τιμή της μεταβλητής, δείτε πώς συμπεριφέρεται το πρόγραμμα.
ΣΗΜΕΊΩΣΗ: Στο ένθετο 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, έχουμε παράσχει διάφορες συνθήκες.
- Η τιμή από τα σημάδια της μεταβλητής θα συγκριθεί με την πρώτη συνθήκη, δεδομένου ότι είναι αλήθεια ότι η δήλωση που σχετίζεται με αυτήν θα εκτυπωθεί στην οθόνη εξόδου.
- Εάν η πρώτη συνθήκη δοκιμής αποδειχθεί ψευδής, τότε συγκρίνεται με τη δεύτερη συνθήκη.
- Αυτή η διαδικασία θα συνεχιστεί μέχρι να αξιολογηθεί η έκφραση all, διαφορετικά ο έλεγχος θα βγει από τη σκάλα else-if και θα εκτυπωθεί η προεπιλεγμένη δήλωση.
Δοκιμάστε να τροποποιήσετε την τιμή και παρατηρήστε την αλλαγή στην έξοδο.
Σύνοψη
- Οι δηλώσεις λήψης αποφάσεων ή διακλάδωσης χρησιμοποιούνται για την επιλογή μιας διαδρομής με βάση το αποτέλεσμα της αξιολογούμενης έκφρασης.
- Ονομάζεται επίσης ως εντολές ελέγχου επειδή ελέγχει τη ροή της εκτέλεσης ενός προγράμματος.
- Το «C» παρέχει δομές if, if-else για δηλώσεις λήψης αποφάσεων.
- Μπορούμε επίσης να φωλιάζουμε if-else το ένα μέσα στο άλλο όταν πρέπει να δοκιμαστούν πολλαπλά μονοπάτια.
- Η σκάλα else-if χρησιμοποιείται όταν πρέπει να ελέγξουμε διάφορους τρόπους με βάση το αποτέλεσμα της έκφρασης.