Šioje pamokoje išmoksite sukurti jungiklio sakinį programuodami C, naudodami pavyzdį.
„Switch“ sakinys leidžia mums atlikti vieną kodo bloką tarp daugybės alternatyvų.
Tą patį galite padaryti ir su if… else… if
kopėčiomis. Tačiau switch
teiginio sintaksę yra daug lengviau skaityti ir rašyti.
Jungiklio… atvejo sintaksė
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Kaip veikia jungiklio teiginys?
Išraiška įvertinama vieną kartą ir palyginama su kiekvieno atvejo etiketės reikšmėmis.
- Jei yra atitikimas, vykdomi atitinkami sakiniai po atitikimo etiketės. Pvz., Jei išraiškos vertė yra lygi konstanta2, sakiniai po
case constant2:
yra vykdomi tol, kolbreak
susiduriama. - Jei nėra atitikties, vykdomi numatytieji teiginiai.
Jei nenaudosime break
, visi sakiniai po atitikimo etiketės bus vykdomi.
Beje, default
sakinys sakinio viduje switch
yra neprivalomas.
perjungti „Statement Flowchart“
Pavyzdys: paprastas skaičiuoklė
// 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; )
Rezultatas
Įveskite operatorių (+, -, *,): - Įveskite du operandus: 32,5 12,4 32,5 - 12,4 = 20,1
Vartotojo įvestas operatorius saugomas operatoriaus kintamajame. Du operandai 32.5 ir 12.4 yra saugomi atitinkamai kintamuosiuose n1 ir n2.
Kadangi operatorius yra -
, programos valdymas pereina į
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Galiausiai lūžio ataskaita nutraukia switch
teiginį.