Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele While-silmukka | Silmukat
Java Perusteet

bookWhile-silmukka

Edellisessä luvussa näit, että silmukan avulla koodi toistettiin 10 kertaa. Tarkastellaan nyt yhden tällaisen silmukan syntaksia.

while-silmukka

while-silmukka on yksinkertaisin esimerkki silmukan toiminnasta. Tämä silmukka suorittaa koodilohkon toistuvasti niin kauan kuin condition-lohkon ehto arvioituu arvoksi true. Kun ehto palauttaa arvon false, silmukan suoritus päättyy.

Main.java

Main.java

copy
123
while (condition) { // code to be executed }

Tämän silmukan toimintaperiaatteen muistamiseksi voit noudattaa yksinkertaista sääntöä: Niin kauan kuin ehto on tosi, suorita toiminto. Esimerkiksi, niin kauan kuin sataa, käytän sateenvarjoa. Heti kun sade lakkaa, kuljen ilman sateenvarjoa.

Sataa - condition
Käytän sateenvarjoa - silmukan sisällä suoritettava koodi
Sade on lakannut - kääntäjä poistuu silmukasta ja lopettaa koodin suorittamisen silmukan sisällä.

Tarkastellaan nyt yksityiskohtaisemmin, miten while-silmukka toimii:

  • Ehto arvioidaan ennen jokaista toistoa. Jos ehto on tosi, silmukan sisällä oleva koodilohko suoritetaan. Jos ehto on epätosi, silmukka päättyy ja ohjelma jatkuu seuraavalla silmukan jälkeisellä lauseella;

  • Silmukan sisällä oleva koodilohko voi sisältää yhden tai useamman lauseen. Nämä lauseet suoritetaan toistuvasti niin kauan kuin ehto pysyy totena;

  • On tärkeää varmistaa, että ehto muuttuu lopulta epätodeksi, muuten silmukka jatkuu loputtomasti ja aiheuttaa äärettömän silmukan.

Tässä on esimerkki, joka havainnollistaa while-silmukkaa:

Main.java

Main.java

copy
123456789101112131415
package com.example; public class Main { public static void main(String[] args) { int a = 0; int b = 10; while (a != b) { a = a + 1; System.out.println("a has value: " + a); b = b - 1; System.out.println("b has value: " + b); } System.out.println("Is a equal to b: " + (a == b)); } }

Tässä koodissa on kaksi muuttujaa tyyppiä int. Silmukassa asetetaan ehto: niin kauan kuin muuttujan a arvo ei ole yhtä suuri kuin muuttujan b arvo, kasvatetaan muuttujaa a ja pienennetään muuttujaa b. Kun niiden arvot ovat samat, while-silmukka lopetetaan.

Tehtävä

Swipe to start coding

Laske summa lukuväliltä 1 n:ään.

  1. Luo metodi nimeltä sumFrom1ToN(int n), joka palauttaa int-tyyppisen tuloksen.
  2. Määrittele metodin sisällä kaksi muuttujaa:
    • sum (kokonaissumman tallentamiseen).
    • current (alkaa arvosta 1).
  3. Käytä while-silmukkaa toistaaksesi seuraavat vaiheet kunnes current on suurempi kuin n:
    • Lisää current-muuttujan arvo sum-muuttujaan.
    • Kasvata current arvoa 1 yksiköllä.
  4. Palauta lopuksi sum.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
single

single

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 other types of loops in Java?

What are some common mistakes to avoid when using while loops?

Can you give more real-life examples where a while loop would be useful?

close

bookWhile-silmukka

Pyyhkäise näyttääksesi valikon

Edellisessä luvussa näit, että silmukan avulla koodi toistettiin 10 kertaa. Tarkastellaan nyt yhden tällaisen silmukan syntaksia.

while-silmukka

while-silmukka on yksinkertaisin esimerkki silmukan toiminnasta. Tämä silmukka suorittaa koodilohkon toistuvasti niin kauan kuin condition-lohkon ehto arvioituu arvoksi true. Kun ehto palauttaa arvon false, silmukan suoritus päättyy.

Main.java

Main.java

copy
123
while (condition) { // code to be executed }

Tämän silmukan toimintaperiaatteen muistamiseksi voit noudattaa yksinkertaista sääntöä: Niin kauan kuin ehto on tosi, suorita toiminto. Esimerkiksi, niin kauan kuin sataa, käytän sateenvarjoa. Heti kun sade lakkaa, kuljen ilman sateenvarjoa.

Sataa - condition
Käytän sateenvarjoa - silmukan sisällä suoritettava koodi
Sade on lakannut - kääntäjä poistuu silmukasta ja lopettaa koodin suorittamisen silmukan sisällä.

Tarkastellaan nyt yksityiskohtaisemmin, miten while-silmukka toimii:

  • Ehto arvioidaan ennen jokaista toistoa. Jos ehto on tosi, silmukan sisällä oleva koodilohko suoritetaan. Jos ehto on epätosi, silmukka päättyy ja ohjelma jatkuu seuraavalla silmukan jälkeisellä lauseella;

  • Silmukan sisällä oleva koodilohko voi sisältää yhden tai useamman lauseen. Nämä lauseet suoritetaan toistuvasti niin kauan kuin ehto pysyy totena;

  • On tärkeää varmistaa, että ehto muuttuu lopulta epätodeksi, muuten silmukka jatkuu loputtomasti ja aiheuttaa äärettömän silmukan.

Tässä on esimerkki, joka havainnollistaa while-silmukkaa:

Main.java

Main.java

copy
123456789101112131415
package com.example; public class Main { public static void main(String[] args) { int a = 0; int b = 10; while (a != b) { a = a + 1; System.out.println("a has value: " + a); b = b - 1; System.out.println("b has value: " + b); } System.out.println("Is a equal to b: " + (a == b)); } }

Tässä koodissa on kaksi muuttujaa tyyppiä int. Silmukassa asetetaan ehto: niin kauan kuin muuttujan a arvo ei ole yhtä suuri kuin muuttujan b arvo, kasvatetaan muuttujaa a ja pienennetään muuttujaa b. Kun niiden arvot ovat samat, while-silmukka lopetetaan.

Tehtävä

Swipe to start coding

Laske summa lukuväliltä 1 n:ään.

  1. Luo metodi nimeltä sumFrom1ToN(int n), joka palauttaa int-tyyppisen tuloksen.
  2. Määrittele metodin sisällä kaksi muuttujaa:
    • sum (kokonaissumman tallentamiseen).
    • current (alkaa arvosta 1).
  3. Käytä while-silmukkaa toistaaksesi seuraavat vaiheet kunnes current on suurempi kuin n:
    • Lisää current-muuttujan arvo sum-muuttujaan.
    • Kasvata current arvoa 1 yksiköllä.
  4. Palauta lopuksi sum.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 2
single

single

some-alt