Σε αυτό το σεμινάριο, θα μάθετε να δημιουργείτε τη δήλωση εναλλαγής στον προγραμματισμό 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
δήλωση.