For-silmukka
Merkittävä haittapuoli while-silmukassa on, että siinä ei voi määrittää tarkkaa toistomäärää eikä hallita silmukan suoritusta täysin. Siksi on olemassa for-silmukka, joka tarjoaa kaikki tarvittavat työkalut silmukan hallintaan ja jota käytetään myös taulukoiden ja kokoelmien kanssa työskenneltäessä.
for-silmukka
for-silmukka on ohjausrakennelausunto, jonka avulla voidaan suorittaa koodilohko määritetyn määrän kertoja. Sitä käytetään yleisesti, kun toistojen määrä tiedetään etukäteen tai kun iteroidaan kokoelman tai taulukon läpi.
for-silmukan syntaksi Javassa on seuraava:
Main.java
123for (initialization; condition; update) { // code to be executed }
Jos etenemme vaihe vaiheelta, aluksi alustamme muuttujan sille varatussa erityisosiossa (teimme saman myös while-silmukassa, mutta teimme sen silmukan ulkopuolella). Sen jälkeen asetamme ehdon, jonka perusteella silmukka suoritetaan (esimerkiksi niin kauan kuin muuttuja on pienempi kuin 10). Tämän jälkeen käytämme inkrementtiä tai dekrementtiä. Alla on vuokaavio ja selitys jokaisen silmukan osan toiminnasta:
Tässä on for-silmukan jokaisen osan erittely:
- Alustus: tämä on alkuasetus, joka suoritetaan vain kerran silmukan alussa. Tyypillisesti tässä määritellään ja alustetaan silmukan ohjausmuuttuja. Esimerkiksi
int i = 0; - Ehto: tämä on ehto, joka tarkistetaan ennen jokaista iteraatiota. Jos ehto on tosi, silmukan runko suoritetaan. Jos ehto on epätosi, silmukka päättyy. Esimerkiksi
i < 10; - Inkrementti/dekrementti: tämä on koodi, joka suoritetaan jokaisen iteraation jälkeen. Tyypillisesti tässä päivitetään silmukan ohjausmuuttuja. Esimerkiksi
i++(joka on sama kuini = i + 1); - Silmukan sisäinen koodi: tämä on koodilohko, joka suoritetaan jokaisella silmukan iteraatiolla. Silmukan runkoon voi sijoittaa mitä tahansa kelvollista Java-koodia.
Tässä on esimerkki, joka havainnollistaa for-silmukan käyttöä:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("Iteration: " + i); } } }
Tässä esimerkissä silmukka suoritetaan 10 kertaa. Se alkaa, kun i alustetaan arvoon 0, tarkistaa onko i pienempi kuin 10, suorittaa silmukan rungon ja päivittää sitten i lisäämällä siihen 1. Tämä prosessi toistuu, kunnes ehto ei enää täyty.
On hyvä huomata, että tässä silmukassa voimme käyttää luomaamme muuttujaa. Tässä tapauksessa tulostamme muuttujan i näyttääksemme iteraation numeron näytöllä.
Tämä on erittäin hyödyllistä, erityisesti silloin kun tarvitsemme muuttujaa i käytettäväksi koodissa.
Tarkastellaan seuraavaksi toista esimerkkiä, jossa meidän täytyy näyttää vain parilliset luvut välillä 1–30.
Jotta voimme määrittää, onko luku parillinen vai ei, käytämme % operaattoria. % operaattori Javassa palauttaa jakolaskun jakojäännöksen. Sen avulla voidaan tarkistaa, jakautuuko luku tasan toisella luvulla, mikä on hyödyllistä parillisuuden tarkistamisessa.
main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 30; i++) { if (i % 2 == 0) { // Check if `i` is even System.out.println(i); } } } }
Hienoa, yllä olevassa koodissa käytimme muuttujaa i ehdon tarkistamiseen. Toisin sanoen, i edustaa tarkasteltavia lukuja. Seuraavaksi tarkistamme, onko luku i parillinen käyttämällä jakojäännösoperaatiota (%). Jos jako kahdella antaa jakojäännökseksi nollan, luku on parillinen, eli se on jaollinen kahdella ilman jakojäännöstä.
Kuvitellaan, että jaetaan 3 luvulla 2. Jaon jakojäännös on 1. Käyttämällä %-operaattoria, 3 % 2 antaa jakojäännöksen, joka on 1. Siten lausekkeessa i % 2 == 0 tulos on epätosi, koska jakojäännös ei ole 0, mikä tarkoittaa, että 3 on pariton luku.
Kiinnitä myös huomiota siihen, miten asetamme ehdon muuttujalle i. Toimintojemme algoritmi pysyy samana kuin aiemmin, mutta silmukan ehtoon rajoitimme i:n arvon 30:een, kuten tehtävässä määriteltiin.
1. Kuinka monta iteraatiota suoritetaan?
2. Kuinka monta kertaa i tulostetaan
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 2.7
For-silmukka
Pyyhkäise näyttääksesi valikon
Merkittävä haittapuoli while-silmukassa on, että siinä ei voi määrittää tarkkaa toistomäärää eikä hallita silmukan suoritusta täysin. Siksi on olemassa for-silmukka, joka tarjoaa kaikki tarvittavat työkalut silmukan hallintaan ja jota käytetään myös taulukoiden ja kokoelmien kanssa työskenneltäessä.
for-silmukka
for-silmukka on ohjausrakennelausunto, jonka avulla voidaan suorittaa koodilohko määritetyn määrän kertoja. Sitä käytetään yleisesti, kun toistojen määrä tiedetään etukäteen tai kun iteroidaan kokoelman tai taulukon läpi.
for-silmukan syntaksi Javassa on seuraava:
Main.java
123for (initialization; condition; update) { // code to be executed }
Jos etenemme vaihe vaiheelta, aluksi alustamme muuttujan sille varatussa erityisosiossa (teimme saman myös while-silmukassa, mutta teimme sen silmukan ulkopuolella). Sen jälkeen asetamme ehdon, jonka perusteella silmukka suoritetaan (esimerkiksi niin kauan kuin muuttuja on pienempi kuin 10). Tämän jälkeen käytämme inkrementtiä tai dekrementtiä. Alla on vuokaavio ja selitys jokaisen silmukan osan toiminnasta:
Tässä on for-silmukan jokaisen osan erittely:
- Alustus: tämä on alkuasetus, joka suoritetaan vain kerran silmukan alussa. Tyypillisesti tässä määritellään ja alustetaan silmukan ohjausmuuttuja. Esimerkiksi
int i = 0; - Ehto: tämä on ehto, joka tarkistetaan ennen jokaista iteraatiota. Jos ehto on tosi, silmukan runko suoritetaan. Jos ehto on epätosi, silmukka päättyy. Esimerkiksi
i < 10; - Inkrementti/dekrementti: tämä on koodi, joka suoritetaan jokaisen iteraation jälkeen. Tyypillisesti tässä päivitetään silmukan ohjausmuuttuja. Esimerkiksi
i++(joka on sama kuini = i + 1); - Silmukan sisäinen koodi: tämä on koodilohko, joka suoritetaan jokaisella silmukan iteraatiolla. Silmukan runkoon voi sijoittaa mitä tahansa kelvollista Java-koodia.
Tässä on esimerkki, joka havainnollistaa for-silmukan käyttöä:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("Iteration: " + i); } } }
Tässä esimerkissä silmukka suoritetaan 10 kertaa. Se alkaa, kun i alustetaan arvoon 0, tarkistaa onko i pienempi kuin 10, suorittaa silmukan rungon ja päivittää sitten i lisäämällä siihen 1. Tämä prosessi toistuu, kunnes ehto ei enää täyty.
On hyvä huomata, että tässä silmukassa voimme käyttää luomaamme muuttujaa. Tässä tapauksessa tulostamme muuttujan i näyttääksemme iteraation numeron näytöllä.
Tämä on erittäin hyödyllistä, erityisesti silloin kun tarvitsemme muuttujaa i käytettäväksi koodissa.
Tarkastellaan seuraavaksi toista esimerkkiä, jossa meidän täytyy näyttää vain parilliset luvut välillä 1–30.
Jotta voimme määrittää, onko luku parillinen vai ei, käytämme % operaattoria. % operaattori Javassa palauttaa jakolaskun jakojäännöksen. Sen avulla voidaan tarkistaa, jakautuuko luku tasan toisella luvulla, mikä on hyödyllistä parillisuuden tarkistamisessa.
main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { for (int i = 0; i < 30; i++) { if (i % 2 == 0) { // Check if `i` is even System.out.println(i); } } } }
Hienoa, yllä olevassa koodissa käytimme muuttujaa i ehdon tarkistamiseen. Toisin sanoen, i edustaa tarkasteltavia lukuja. Seuraavaksi tarkistamme, onko luku i parillinen käyttämällä jakojäännösoperaatiota (%). Jos jako kahdella antaa jakojäännökseksi nollan, luku on parillinen, eli se on jaollinen kahdella ilman jakojäännöstä.
Kuvitellaan, että jaetaan 3 luvulla 2. Jaon jakojäännös on 1. Käyttämällä %-operaattoria, 3 % 2 antaa jakojäännöksen, joka on 1. Siten lausekkeessa i % 2 == 0 tulos on epätosi, koska jakojäännös ei ole 0, mikä tarkoittaa, että 3 on pariton luku.
Kiinnitä myös huomiota siihen, miten asetamme ehdon muuttujalle i. Toimintojemme algoritmi pysyy samana kuin aiemmin, mutta silmukan ehtoon rajoitimme i:n arvon 30:een, kuten tehtävässä määriteltiin.
1. Kuinka monta iteraatiota suoritetaan?
2. Kuinka monta kertaa i tulostetaan
Kiitos palautteestasi!