C Δήλωση υπό όρους: IF, IF Else και Nested IF Else με παράδειγμα

Πίνακας περιεχομένων:

Anonim

Τι είναι μια δήλωση υπό όρους στο C;

Οι δηλώσεις υπό όρους στον προγραμματισμό C χρησιμοποιούνται για τη λήψη αποφάσεων βάσει των συνθηκών. Οι δηλώσεις υπό όρους εκτελούνται διαδοχικά όταν δεν υπάρχει συνθήκη γύρω από τις δηλώσεις. Εάν βάλετε κάποια συνθήκη για ένα μπλοκ δηλώσεων, η ροή εκτέλεσης ενδέχεται να αλλάξει με βάση το αποτέλεσμα που αξιολογείται από τη συνθήκη. Αυτή η διαδικασία ονομάζεται λήψη αποφάσεων στο «Γ».

Στο πρόγραμμα «C» είναι δυνατές οι δηλώσεις υπό όρους με τη βοήθεια των ακόλουθων δύο κατασκευών:

1. Εάν η δήλωση

2. Δήλωση if-else

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

Σε αυτό το σεμινάριο, θα μάθετε-

  • Τι είναι μια δήλωση υπό όρους;
  • Εάν δήλωση
  • Σχεσιακοί χειριστές
  • Η δήλωση If-Else
  • Υπό όρους εκφράσεις
  • Ένθετες δηλώσεις If-else
  • Ένθετες δηλώσεις Else-if

Εάν δήλωση

Είναι μια από τις ισχυρές υποθέσεις υπό όρους. Εάν η δήλωση είναι υπεύθυνη για την τροποποίηση της ροής εκτέλεσης ενός προγράμματος. Εάν η δήλωση χρησιμοποιείται πάντα με μια συνθήκη. Η συνθήκη αξιολογείται πρώτα πριν εκτελέσει οποιαδήποτε δήλωση μέσα στο σώμα του If. Η σύνταξη για τη δήλωση if έχει ως εξής:

 if (condition)instruction; 

Η συνθήκη αξιολογείται είτε αληθής είτε ψευδής. Το True είναι πάντα μη μηδενική τιμή και το false είναι τιμή που περιέχει μηδέν. Οι οδηγίες μπορούν να είναι μια μεμονωμένη οδηγία ή ένα μπλοκ κώδικα που περικλείεται από αγκύλες {}.

Το ακόλουθο πρόγραμμα δείχνει τη χρήση του if build στον προγραμματισμό 'C':

#includeint main(){int num1=1;int num2=2;if(num1

Παραγωγή:

num1 is smaller than num2

Το παραπάνω πρόγραμμα απεικονίζει τη χρήση του if build για τον έλεγχο της ισότητας δύο αριθμών.

  1. Στο παραπάνω πρόγραμμα, έχουμε αρχικοποιήσει δύο μεταβλητές με num1, num2 με τιμή ως 1, 2 αντίστοιχα.
  2. Στη συνέχεια, χρησιμοποιήσαμε εάν με μια δοκιμαστική έκφραση για να ελέγξουμε ποιος είναι ο μικρότερος και ποιος είναι ο μεγαλύτερος. Έχουμε χρησιμοποιήσει μια σχεσιακή έκφραση στο if build. Δεδομένου ότι η τιμή του num1 είναι μικρότερη από το num2, η συνθήκη θα αξιολογηθεί ως αληθής.
  3. Έτσι θα εκτυπώσει τη δήλωση στο μπλοκ του If. Μετά από αυτό, ο έλεγχος θα πάει έξω από το μπλοκ και το πρόγραμμα θα τερματιστεί με ένα επιτυχημένο αποτέλεσμα.

Σχεσιακοί χειριστές

Το C έχει έξι σχεσιακούς τελεστές που μπορούν να χρησιμοποιηθούν για τη διαμόρφωση μιας Boolean έκφρασης για τη λήψη αποφάσεων και δοκιμών συνθηκών, η οποία επιστρέφει αληθινή ή ψευδής:

<λιγότερο από

<= μικρότερο ή ίσο με

> μεγαλύτερο από

> = μεγαλύτερο από ή ίσο με

== ίσο με

= = δεν ισούται με

Παρατηρήστε ότι το ίσο τεστ (==) είναι διαφορετικό από το χειριστή ανάθεσης (=) επειδή είναι ένα από τα πιο συνηθισμένα προβλήματα που αντιμετωπίζει ένας προγραμματιστής αναμιγνύοντάς τα.

Για παράδειγμα:

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;

Σε αυτόν τον τύπο κατασκευής, εάν η τιμή της έκφρασης δοκιμής είναι αληθής, θα εκτελεστεί το πραγματικό μπλοκ δηλώσεων. Εάν η τιμή του test-express εάν είναι false, τότε θα εκτελεστεί το false block of statement. Σε κάθε περίπτωση, μετά την εκτέλεση, ο έλεγχος θα μεταφερθεί αυτόματα στις δηλώσεις που εμφανίζονται έξω από το μπλοκ του If.

Τα ακόλουθα προγράμματα απεικονίζουν τη χρήση της κατασκευής if-else:

Θα ξεκινήσουμε μια μεταβλητή με κάποια τιμή και θα γράψουμε ένα πρόγραμμα για να προσδιορίσουμε εάν η τιμή είναι μικρότερη από δέκα ή μεγαλύτερη από δέκα.

Ας αρχίσουμε.

#includeint 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

  1. Έχουμε ξεκινήσει μια μεταβλητή με την τιμή 19. Πρέπει να μάθουμε αν ο αριθμός είναι μεγαλύτερος ή μικρότερος από 10 χρησιμοποιώντας ένα πρόγραμμα «C». Για να το κάνουμε αυτό, χρησιμοποιήσαμε την κατασκευή if-else.
  2. Εδώ έχουμε παράσχει έναν όρο αριθ. <10 επειδή πρέπει να συγκρίνουμε την αξία μας με το 10.
  3. Όπως μπορείτε να δείτε, το πρώτο μπλοκ είναι πάντα ένα αληθινό μπλοκ που σημαίνει, εάν η τιμή της έκφρασης δοκιμής είναι αληθής τότε το πρώτο μπλοκ που είναι If, θα εκτελεστεί.
  4. Το δεύτερο μπλοκ είναι ένα άλλο μπλοκ. Αυτό το μπλοκ περιέχει τις δηλώσεις που θα εκτελεστούν εάν η τιμή της έκφρασης δοκιμής γίνει ψευδής. Στο πρόγραμμά μας, η τιμή του αριθμού είναι μεγαλύτερη από δέκα και ως εκ τούτου η κατάσταση δοκιμής γίνεται ψευδής και αλλιώς εκτελείται μπλοκ. Έτσι, η παραγωγή μας θα προέρχεται από ένα άλλο μπλοκ που είναι "Η τιμή είναι μεγαλύτερη από 10". Μετά το if-else, το πρόγραμμα θα τερματιστεί με επιτυχία.

Στον προγραμματισμό «C» μπορούμε να χρησιμοποιήσουμε πολλαπλές κατασκευές if-else ο ένας στον άλλο που αναφέρονται ως ένθεση δηλώσεων if-else.

Υπό όρους εκφράσεις

Υπάρχει ένας άλλος τρόπος για να εκφράσετε μια δήλωση if-else είναι με την εισαγωγή του τελεστή ?: . Σε μια υπό όρους έκφραση της : χειριστής έχει μόνο μία δήλωση που σχετίζεται με το εάν και το άλλο.

Για παράδειγμα:

#include 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. Nesting σημαίνει τη χρήση μιας κατασκευής if-else μέσα σε άλλη.

Ας γράψουμε ένα πρόγραμμα για να δείξουμε τη χρήση του ένθετου αν-αλλιώς.

#includeint 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 build.

  1. Πρώτον, έχουμε δηλώσει έναν μεταβλητό αριθμό με τιμή ως 1. Στη συνέχεια, χρησιμοποιήσαμε if-else κατασκευή.
  2. Στο εξωτερικό if-else, η συνθήκη που παρέχεται ελέγχει εάν ένας αριθμός είναι μικρότερος από 10. Εάν η συνθήκη είναι αληθής τότε και μόνο τότε θα εκτελέσει τον εσωτερικό βρόχο. Σε αυτήν την περίπτωση, η συνθήκη ισχύει και ως εκ τούτου το εσωτερικό μπλοκ υποβάλλεται σε επεξεργασία.
  3. Στο εσωτερικό μπλοκ, έχουμε και πάλι μια κατάσταση που ελέγχει εάν η μεταβλητή μας περιέχει την τιμή 1 ή όχι. Όταν μια συνθήκη είναι αληθής, τότε θα επεξεργαστεί το μπλοκ If διαφορετικά θα επεξεργαστεί ένα άλλο μπλοκ. Σε αυτήν την περίπτωση, η συνθήκη είναι αληθής εξ ου και το If if εκτελείται και η τιμή εκτυπώνεται στην οθόνη εξόδου.
  4. Το παραπάνω πρόγραμμα θα εκτυπώσει την τιμή μιας μεταβλητής και θα βγεί με επιτυχία.

Δοκιμάστε να αλλάξετε την τιμή της μεταβλητής δείτε πώς συμπεριφέρεται το πρόγραμμα.

ΣΗΜΕΙΩΣΗ: Σε ένθετο αν-αλλιώς, πρέπει να είμαστε προσεκτικοί με την εσοχή, επειδή πολλές δομές if-else εμπλέκονται σε αυτήν τη διαδικασία, οπότε καθίσταται δύσκολο να καταλάβουμε μεμονωμένες κατασκευές. Η σωστή εσοχή διευκολύνει την ανάγνωση του προγράμματος.

Ένθετες δηλώσεις 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;

Αυτός ο τύπος δομής είναι γνωστός ως η άλλη σκάλα. Αυτή η αλυσίδα μοιάζει γενικά με μια σκάλα και επομένως ονομάζεται και ως άλλη σκάλα. Οι δοκιμές-εκφράσεις αξιολογούνται από πάνω προς τα κάτω. Κάθε φορά που μια πραγματική δοκιμαστική έκφραση αν βρεθεί, εκτελείται μια δήλωση που σχετίζεται με αυτήν. Όταν όλες οι δοκιμαστικές εκφράσεις γίνονται ψευδείς, τότε εκτελείται η προεπιλεγμένη δήλωση αλλού.

Ας δούμε την πραγματική εργασία με τη βοήθεια ενός προγράμματος.

#includeint 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 στο παραπάνω πρόγραμμα.

  1. Έχουμε ξεκινήσει μια μεταβλητή με σήματα. Στη δομή άλλης-αν σκάλας, έχουμε παράσχει διάφορες προϋποθέσεις.
  2. Η τιμή από τα μεταβλητά σημάδια θα συγκριθεί με την πρώτη συνθήκη, καθώς είναι αλήθεια ότι η δήλωση που σχετίζεται με αυτήν θα εκτυπωθεί στην οθόνη εξόδου.
  3. Εάν η πρώτη συνθήκη δοκιμής αποδειχθεί ψευδής, τότε συγκρίνεται με τη δεύτερη συνθήκη.
  4. Αυτή η διαδικασία θα συνεχιστεί έως ότου αξιολογηθεί όλη η έκφραση, διαφορετικά ο έλεγχος θα βγει από τη σκάλα του άλλου-εάν, και θα εκτυπωθεί η προεπιλεγμένη δήλωση.

Δοκιμάστε να τροποποιήσετε την τιμή και παρατηρήστε την αλλαγή στην έξοδο.

Περίληψη

  • Οι δηλώσεις λήψης αποφάσεων ή διακλάδωσης χρησιμοποιούνται για την επιλογή μιας διαδρομής με βάση το αποτέλεσμα της αξιολογημένης έκφρασης.
  • Ονομάζεται επίσης ως δηλώσεις ελέγχου επειδή ελέγχει τη ροή εκτέλεσης ενός προγράμματος.
  • Το «C» παρέχει εάν, εάν-αλλιώς κατασκευάζει για δηλώσεις λήψης αποφάσεων.
  • Μπορούμε επίσης να φωλιάσουμε αν-αλλιώς το ένα στο άλλο όταν πρέπει να δοκιμαστούν πολλές διαδρομές.
  • Η άλλη-αν η σκάλα χρησιμοποιείται όταν πρέπει να ελέγξουμε διάφορους τρόπους με βάση το αποτέλεσμα της έκφρασης.