διακόπτης ... θήκη στον προγραμματισμό C

Σε αυτό το σεμινάριο, θα μάθετε να δημιουργείτε τη δήλωση εναλλαγής στον προγραμματισμό C με τη βοήθεια ενός παραδείγματος.

Η δήλωση διακόπτη μας επιτρέπει να εκτελέσουμε ένα μπλοκ κώδικα μεταξύ πολλών εναλλακτικών λύσεων.

Μπορείτε να κάνετε το ίδιο πράγμα με τη if… else… ifσκάλα. Ωστόσο, η σύνταξη της switchδήλωσης είναι πολύ πιο εύκολη στην ανάγνωση και τη γραφή.

Σύνταξη διακόπτη… θήκη

 switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )

Πώς λειτουργεί η δήλωση διακόπτη;

Η έκφραση αξιολογείται μία φορά και συγκρίνεται με τις τιμές κάθε ετικέτας.

  • Εάν υπάρχει αντιστοιχία, εκτελούνται οι αντίστοιχες δηλώσεις μετά την αντίστοιχη ετικέτα. Για παράδειγμα, εάν η τιμή της έκφρασης είναι ίση με τη σταθερά2, οι δηλώσεις μετά case constant2:εκτελούνται έως ότου breakσυναντηθεί.
  • Εάν δεν υπάρχει αντιστοιχία, εκτελούνται οι προεπιλεγμένες δηλώσεις.

Εάν δεν το χρησιμοποιήσουμε break, εκτελούνται όλες οι δηλώσεις μετά την αντίστοιχη ετικέτα.

Παρεμπιπτόντως, η defaultρήτρα μέσα στη switchδήλωση είναι προαιρετική.

εναλλαγή διάγραμμα ροής δήλωσης

Παράδειγμα: Απλή αριθμομηχανή

 // Program to create a simple calculator #include int main() ( char operator; double n1, n2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf",&n1, &n2); switch(operator) ( case '+': printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); break; case '-': printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); break; case '*': printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); break; case '/': printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); break; // operator doesn't match any case constant +, -, *, / default: printf("Error! operator is not correct"); ) return 0; ) 

Παραγωγή

 Εισαγάγετε έναν τελεστή (+, -, *,): - Εισαγάγετε δύο τελεστές: 32,5 12,4 32,5 - 12,4 = 20,1

Ο τελεστής που εισήγαγε ο χρήστης αποθηκεύεται στη μεταβλητή του χειριστή. Και, δύο τελεστές 32.5 και 12.4 αποθηκεύονται στις μεταβλητές n1 και n2 αντίστοιχα.

Δεδομένου ότι ο χειριστής είναι -, ο έλεγχος του προγράμματος μεταβαίνει στο

 printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);

Τέλος, η δήλωση διακοπής τερματίζει τη switchδήλωση.

ενδιαφέροντα άρθρα...