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

bookWhile, Do-While

Kuvittele tilanne, jossa täytyy toistaa tiettyjä tehtäviä, kuten lukea tietoja sensorista, yrittää salasanaa useita kertoja tai laskea sanoja lauseessa. Näissä tilanteissa silmukat ovat hyödyllisiä.

Silmukoiden avulla voit suorittaa tiettyjä koodilohkoja useita kertoja, olipa kyseessä kymmenet, sadat tai jopa tuhannet toistot. Silmukoiden käsitteen ymmärtäminen on keskeistä ohjelmoinnissa. Tämä kurssi käsittelee perustavanlaatuisia silmukoita: while-silmukka, do-while-silmukka ja for-silmukka.

While-silmukka

Tämä silmukka jatkaa suorittamista niin kauan kuin tietty ehto täyttyy. Kun ehto ei enää täyty, silmukka päättyy.

main.c

main.c

copy
123
while (condition) { // Loop body }

Silmukan peruskäyttö on toistojen määrän näyttäminen:

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }

Silmukan pysäyttämiseksi tarvitaan lopetusehto. Yksinkertainen tapa on käyttää laskuria seuraamaan, kuinka monta kertaa silmukka suoritetaan.

Note
Huomio

Iteraatio tarkoittaa yhtä kierrosta silmukassa. Jos silmukka suorittaa koodilohkon 10 kertaa, se on tehnyt 10 iteraatiota.

Rivi iterations++; on olennainen, sillä se kasvattaa laskuria (int iterations) jokaisella kierroksella. Laskuri määrittää ehdot silmukan lopettamiselle.

Note
Huomio

On välttämätöntä asettaa ehdot silmukasta poistumiselle. Jos näin ei tehdä, seurauksena on loputon silmukka.

Main.c

Main.c

copy
12345678910111213141516
#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; int i = 0; // Index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // `i = i + 1` } return 0; }

Kiinnitä huomiota lausekkeeseen array[i]. Tässä muuttuja i ilmaisee array[]-alkioiden indeksin.

Jokaisella kierroksella muuttuja i kasvaa 1. Tämä tarkoittaa, että jokaisella kierroksella lauseke array[i] viittaa seuraavaan taulukon alkioon:

Keskeinen ero do-while- ja while-silmukoiden välillä on, että ensimmäinen takaa vähintään yhden suorituskerran, vaikka ehto olisi aluksi epätosi.

main.c

main.c

copy
123
do { // Do something } while (condition);

Tämä silmukkamuoto on hyödyllinen yksinkertaisten käyttöliittymien rakentamiseen. Esimerkiksi salasanaa kysyttäessä, koska sen avulla voit jatkaa kysymistä, kunnes syöte on kelvollinen. do-while-tyyppinen silmukka sopii tähän hyvin, koska kehotteen on näytettävä vähintään kerran, kun taas while-silmukka toimii, kun sisään mennään vain, jos esiehto täyttyy.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }
question mark

Mikä on muuttujan x arvo kuudennella iteraatiolla?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain the difference between a while loop and a do-while loop with examples?

How does the counter help in terminating a loop?

Can you show how to use a loop to read data from a sensor?

Awesome!

Completion rate improved to 2.63

bookWhile, Do-While

Pyyhkäise näyttääksesi valikon

Kuvittele tilanne, jossa täytyy toistaa tiettyjä tehtäviä, kuten lukea tietoja sensorista, yrittää salasanaa useita kertoja tai laskea sanoja lauseessa. Näissä tilanteissa silmukat ovat hyödyllisiä.

Silmukoiden avulla voit suorittaa tiettyjä koodilohkoja useita kertoja, olipa kyseessä kymmenet, sadat tai jopa tuhannet toistot. Silmukoiden käsitteen ymmärtäminen on keskeistä ohjelmoinnissa. Tämä kurssi käsittelee perustavanlaatuisia silmukoita: while-silmukka, do-while-silmukka ja for-silmukka.

While-silmukka

Tämä silmukka jatkaa suorittamista niin kauan kuin tietty ehto täyttyy. Kun ehto ei enää täyty, silmukka päättyy.

main.c

main.c

copy
123
while (condition) { // Loop body }

Silmukan peruskäyttö on toistojen määrän näyttäminen:

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }

Silmukan pysäyttämiseksi tarvitaan lopetusehto. Yksinkertainen tapa on käyttää laskuria seuraamaan, kuinka monta kertaa silmukka suoritetaan.

Note
Huomio

Iteraatio tarkoittaa yhtä kierrosta silmukassa. Jos silmukka suorittaa koodilohkon 10 kertaa, se on tehnyt 10 iteraatiota.

Rivi iterations++; on olennainen, sillä se kasvattaa laskuria (int iterations) jokaisella kierroksella. Laskuri määrittää ehdot silmukan lopettamiselle.

Note
Huomio

On välttämätöntä asettaa ehdot silmukasta poistumiselle. Jos näin ei tehdä, seurauksena on loputon silmukka.

Main.c

Main.c

copy
12345678910111213141516
#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; int i = 0; // Index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // `i = i + 1` } return 0; }

Kiinnitä huomiota lausekkeeseen array[i]. Tässä muuttuja i ilmaisee array[]-alkioiden indeksin.

Jokaisella kierroksella muuttuja i kasvaa 1. Tämä tarkoittaa, että jokaisella kierroksella lauseke array[i] viittaa seuraavaan taulukon alkioon:

Keskeinen ero do-while- ja while-silmukoiden välillä on, että ensimmäinen takaa vähintään yhden suorituskerran, vaikka ehto olisi aluksi epätosi.

main.c

main.c

copy
123
do { // Do something } while (condition);

Tämä silmukkamuoto on hyödyllinen yksinkertaisten käyttöliittymien rakentamiseen. Esimerkiksi salasanaa kysyttäessä, koska sen avulla voit jatkaa kysymistä, kunnes syöte on kelvollinen. do-while-tyyppinen silmukka sopii tähän hyvin, koska kehotteen on näytettävä vähintään kerran, kun taas while-silmukka toimii, kun sisään mennään vain, jos esiehto täyttyy.

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }
question mark

Mikä on muuttujan x arvo kuudennella iteraatiolla?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5
some-alt