Šajā apmācībā jūs iemācīsities izveidot slēdža paziņojumu C programmēšanā, izmantojot piemēru.
Slēdža paziņojums ļauj mums izpildīt vienu koda bloku starp daudzām alternatīvām.
Jūs varat darīt to pašu ar if… else… if
kāpnēm. Tomēr switch
apgalvojuma sintaksi ir daudz vieglāk lasīt un rakstīt.
Slēdža … burtu sintakse
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Kā slēdzis darbojas?
Izteiksme tiek novērtēta vienu reizi un salīdzināta ar katra gadījuma etiķetes vērtībām.
- Ja ir atbilstība, tiek izpildīti atbilstošie priekšraksti pēc atbilstošās etiķetes. Piemēram, ja izteiksmes vērtība ir vienāda ar konstanti2, paziņojumi pēc
case constant2:
tiek izpildīti, līdzbreak
sastopami. - Ja nav atbilstības, tiek izpildīti noklusējuma paziņojumi.
Ja mēs to neizmantojam break
, tiek izpildīti visi priekšraksti pēc atbilstošās etiķetes.
Starp citu, default
teikumā esošā klauzula switch
nav obligāta.
slēdzis Pārskatu blokshēma
Piemērs: vienkāršs kalkulators
// 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; )
Rezultāts
Ievadiet operatoru (+, -, *,): - ievadiet divus operandus: 32,5 12,4 32,5 - 12,4 = 20,1
Lietotāja ievadītais operators tiek saglabāts operatora mainīgajā. Divi operandi 32.5 un 12.4 tiek glabāti attiecīgi mainīgajos n1 un n2.
Tā kā operators ir -
, programmas vadība pāriet uz
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Visbeidzot, break break paziņojums tiek izbeigts switch
.