Tässä opetusohjelmassa opit luomaan kytkinlausekkeen C-ohjelmoinnissa esimerkin avulla.
Kytkinlausekkeen avulla voimme suorittaa yhden koodilohkon monien vaihtoehtojen joukossa.
Voit tehdä saman asian if… else… if
tikkailla. switch
Lausunnon syntaksia on kuitenkin paljon helpompi lukea ja kirjoittaa.
Kytkimen… tapauksen syntakse
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Kuinka kytkinlausunto toimii?
Lauseke arvioidaan kerran ja verrataan kunkin tapausleiman arvoihin.
- Jos vastaavuus on olemassa, vastaavat lausekkeet vastaavan tunnisteen jälkeen suoritetaan. Esimerkiksi, jos lausekkeen arvo on yhtä suuri kuin vakio2, lauseet sen jälkeen
case constant2:
suoritetaan, kunnesbreak
kohtaaminen tapahtuu. - Jos vastaavuutta ei löydy, oletuslausekkeet suoritetaan.
Jos emme käytä break
, kaikki vastaavan tunnisteen jälkeiset lauseet suoritetaan.
Muuten default
lauseen sisällä oleva switch
lause on valinnainen.
vaihda Statement Flowchart
Esimerkki: Yksinkertainen laskin
// 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; )
Tuotos
Syötä operaattori (+, -, *,): - Syötä kaksi operandia: 32,5 12,4 32,5 - 12,4 = 20,1
Käyttäjän syöttämä operaattori tallennetaan operaattorimuuttujaan. Ja kaksi operandia 32.5 ja 12.4 tallennetaan muuttujiin n1 ja n2 vastaavasti.
Koska käyttäjä on -
, ohjelman ohjaus hyppää kohtaan
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Lopuksi rikkomuslauseke lopettaa switch
lauseen.