Switch, Break
Switch-lauseen käyttö
Kuvittele, että ostat limsaa automaatista. Kun valitset haluamasi juoman, automaatin tietokoneessa user_input-muuttuja saa yhden ennalta määritellyistä arvoista. Jokainen näistä vaihtoehdoista on nimeltään case, ja tässä kohtaa switch-lause tulee käyttöön.
Ajattele switch-lausetta vaihtoehtoisena versiona if-else-rakenteesta. Se reagoi tiettyihin arvoihin, jotka olet aiemmin määritellyt.
Tältä näyttää switch-lauseen rakenne:
main.c
1234567891011121314151617switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }
Tarkastellaan esimerkkiä myyntiautomaatista. Oletetaan, että on kolme painiketta eri sipsityyppien valitsemiseksi:
- Juustonmakuiset sipsit;
- Pekoninmakuiset sipsit;
- Chilimakuiset sipsit.
Main.c
123456789101112131415161718192021222324#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }
Jos testattu lauseke ei vastaa mitään luetelluista tapauksista, suoritetaan default-tapaus. Jos default-tapausta ei ole määritelty, ohjelma jatkaa suoritustaan normaalisti.
switch-lauseessa testattava lauseke voi olla vain kokonaisluku- tai char-tyyppiä. Et voi käyttää merkkijonoja tai muita kuin kokonaislukutyyppisiä tietotyyppejä tapauksina.
Main.c
12345678910111213141516171819202122232425#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }
break-komennon rooli
break-komento pysäyttää nykyisen lohkon suorituksen ja siirtyy seuraavaan koodin osaan. Kun kyseinen tapaus on käsitelty, poistutaan lohkosta ja ohjelman suoritus jatkuu.
Ilman break-komentoa switch-lause jatkaisi suorittamista, mikä johtaisi usein ei-toivottuihin tuloksiin.
Main.c
123456789101112131415161718192021222324#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }
Ilman break-komentoa ohjelma alkaa suorittaa heti löydettyään vastaavan tapauksen ja jatkaa, kunnes se löytää breakin tai saavuttaa switchin lopun.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you show me an example of a switch statement in code?
What happens if I forget to include a break statement in one of the cases?
Can you explain how the default case works in more detail?
Awesome!
Completion rate improved to 2.63
Switch, Break
Pyyhkäise näyttääksesi valikon
Switch-lauseen käyttö
Kuvittele, että ostat limsaa automaatista. Kun valitset haluamasi juoman, automaatin tietokoneessa user_input-muuttuja saa yhden ennalta määritellyistä arvoista. Jokainen näistä vaihtoehdoista on nimeltään case, ja tässä kohtaa switch-lause tulee käyttöön.
Ajattele switch-lausetta vaihtoehtoisena versiona if-else-rakenteesta. Se reagoi tiettyihin arvoihin, jotka olet aiemmin määritellyt.
Tältä näyttää switch-lauseen rakenne:
main.c
1234567891011121314151617switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }
Tarkastellaan esimerkkiä myyntiautomaatista. Oletetaan, että on kolme painiketta eri sipsityyppien valitsemiseksi:
- Juustonmakuiset sipsit;
- Pekoninmakuiset sipsit;
- Chilimakuiset sipsit.
Main.c
123456789101112131415161718192021222324#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }
Jos testattu lauseke ei vastaa mitään luetelluista tapauksista, suoritetaan default-tapaus. Jos default-tapausta ei ole määritelty, ohjelma jatkaa suoritustaan normaalisti.
switch-lauseessa testattava lauseke voi olla vain kokonaisluku- tai char-tyyppiä. Et voi käyttää merkkijonoja tai muita kuin kokonaislukutyyppisiä tietotyyppejä tapauksina.
Main.c
12345678910111213141516171819202122232425#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }
break-komennon rooli
break-komento pysäyttää nykyisen lohkon suorituksen ja siirtyy seuraavaan koodin osaan. Kun kyseinen tapaus on käsitelty, poistutaan lohkosta ja ohjelman suoritus jatkuu.
Ilman break-komentoa switch-lause jatkaisi suorittamista, mikä johtaisi usein ei-toivottuihin tuloksiin.
Main.c
123456789101112131415161718192021222324#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }
Ilman break-komentoa ohjelma alkaa suorittaa heti löydettyään vastaavan tapauksen ja jatkaa, kunnes se löytää breakin tai saavuttaa switchin lopun.
Kiitos palautteestasi!