Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Switch, Break | Ohjauslauseet
C:n Perusteet

bookSwitch, 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

main.c

copy
1234567891011121314151617
switch (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

Main.c

copy
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.

Note
Huomio

switch-lauseessa testattava lauseke voi olla vain kokonaisluku- tai char-tyyppiä. Et voi käyttää merkkijonoja tai muita kuin kokonaislukutyyppisiä tietotyyppejä tapauksina.

Main.c

Main.c

copy
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

Main.c

copy
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.

question mark

Mikä on break-lauseen pääasiallinen tarkoitus switch-lohkossa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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

bookSwitch, 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

main.c

copy
1234567891011121314151617
switch (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

Main.c

copy
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.

Note
Huomio

switch-lauseessa testattava lauseke voi olla vain kokonaisluku- tai char-tyyppiä. Et voi käyttää merkkijonoja tai muita kuin kokonaislukutyyppisiä tietotyyppejä tapauksina.

Main.c

Main.c

copy
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

Main.c

copy
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.

question mark

Mikä on break-lauseen pääasiallinen tarkoitus switch-lohkossa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
some-alt