Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele For-Silmukka Dartissa | Silmukat Dartissa
Johdanto Dartiin

bookFor-Silmukka Dartissa

Pyyhkäise näyttääksesi valikon

for-silmukka toistaa tietyn koodilohkon useita kertoja. Esimerkiksi, jos halutaan tarkistaa jokaisen opiskelijan arvosana luokassa, jossa on 32 opiskelijaa, silmukoidaan 1:stä 32:een.

for-silmukkaa käytetään toistamaan koodin osaa ennalta tiedetyn määrän kertoja.

Esimerkkejä:

  • Koulun oppilaiden keski-iän laskeminen. Vaikka ohjelmoija ei välttämättä tiedä oppilaiden määrää, tietokone voi selvittää sen. Dart tekee tämän käyttämällä length-olion List-ominaisuutta;
  • Parillisten lukujen tulostaminen 1:stä 500:aan;
  • Etsintä List-tyyppisestä lukujoukosta, esimerkiksi korkeimman pistemäärän löytäminen kokeessa. Taas tietokone tietää, kuinka monta arvosanaa List sisältää, joten for-silmukka sopii tähän.

For-silmukan syntaksi

Tarkastellaan for-silmukan syntaksia alla olevan esimerkkikoodin avulla:

for (Initialization; Condition; Increment/Decrement) {
  // Сode block
}

Dartin for-silmukassa on kolme osaa:

  • Alustus: muuttujan alustus, joka määrittää silmukan toistojen määrän. Tässä alustetaan muuttuja nimeltä i arvolla 0;

  • Ehto: ehto, joka määrittää, jatketaanko silmukkaa. Tässä tarkistetaan, onko i pienempi kuin 5;

  • Inkrementointi tai dekrementointi ovat laskurin päivityksiä jokaisen silmukan kierroksen lopussa.

Jokainen näistä for-silmukan ohjeista erotetaan puolipisteellä ;.

Esimerkki

Tässä esimerkissä käytetään for-silmukkaa viestin tulostamiseen konsoliin viisi kertaa. Näin se toimii:

main.dart

main.dart

copy
12345
void main() { for (int day = 1; day <= 7; day++) { print("Day $day: Time to exercise!"); } }

Kuvittele, että rakennat yksinkertaista treenimuistutinta. Tämä koodi tulostaa viestin jokaiselle päivälle muistuttaen liikkumisesta.

  • int day = 1: alustaa muuttujan day arvolla 1 (ensimmäinen treenipäivä);
  • day <= 7: pitää silmukan käynnissä niin kauan kuin day on pienempi tai yhtä suuri kuin 7 (täysi viikko);
  • day++: kasvattaa day-muuttujaa yhdellä jokaisen muistutuksen jälkeen;
  • print("Day $day: Time to exercise!"): tulostaa "Day 1: Time to exercise!", "Day 2: Time to exercise!" ja niin edelleen päivään 7 asti.

For-in-silmukan syntaksi

Näin toimii for-in-silmukka Dartissa, esitettynä yksinkertaisessa rakenteessa:

for (Type variable in collection) {
  // Code to execute for each item
}
  • for: silmukan käynnistävä avainsana;
  • (Type variable in collection): silmukan rakenne:
    • Type: kokoelman jokaisen alkion tietotyyppi (esim. String, int);
    • variable: väliaikainen muuttuja, joka sisältää nykyisen alkion;
    • in collection: kokoelma (lista), jonka yli silmukka käy;
  • {}: silmukan runko, joka sisältää koodin, joka suoritetaan jokaiselle alkiolle.

for-silmukka mahdollistaa listojen käsittelyn kätevästi.

Esimerkki

Tarkastellaan esimerkkiä:

main.dart

main.dart

copy
123456
void main() { List<String> fruits = ["apple", "banana", "orange"]; for (String fruit in fruits) { print(fruit); } }

Tämä koodi määrittelee merkkijonolistan, joka edustaa erilaisia fruits: "apple", "banana" ja "orange". Lista tallennetaan muuttujaan fruits.

for (String fruit in fruits) {

Käytämme for-in-silmukkaa käydäksemme läpi jokaisen alkion fruits-listassa. Tämä silmukka hakee automaattisesti jokaisen hedelmän yksi kerrallaan ja asettaa sen muuttujaan fruit. Tässä fruit sisältää nykyisen hedelmän arvon jokaisella silmukan kierroksella.

print(fruit); 

Silmukan sisällä nykyinen fruit tulostetaan konsoliin. Silmukka siirtyy seuraavaan hedelmään ja toistaa prosessin, kunnes kaikki listan alkiot on tulostettu.

Tämä lähestymistapa on hyödyllinen työskenneltäessä listojen kanssa, kuten ostoslistan näyttämisessä tai käyttäjän valitsemien alkioiden käsittelyssä.

Sinulle annetaan lista tuotenimistä. Tehtävänäsi on täydentää silmukan ehto niin, että tulostetaan vain tuotteet, joiden nimessä on kirjain "o".

  1. Täydennä silmukan if-ehto tarkistamaan, sisältääkö tuotenimi kirjaimen "o".
  2. Varmista, että vain tuotteet, joiden nimessä on "o" (iso tai pieni kirjain), tulostetaan.
  3. Odotettu tuloste:
Laptop
Headphones
Mouse
Keyboard
Monitor
main.dart

main.dart

copy
12345678910111213141516
void main() { List<String> products = [ "Laptop", "Headphones", "Mouse", "Keyboard", "USB Cable", "Monitor" ]; for (String product in products) { if (___) { // Complete the condition print(product); } } }

Käytä .contains("o") tarkistaaksesi, sisältääkö merkkijono kirjaimen "o".

main.dart

main.dart

copy
12345678910111213141516
void main() { List<String> products = [ "Laptop", "Headphones", "Mouse", "Keyboard", "USB Cable", "Monitor" ]; for (String product in products) { if (product.toLowerCase().contains("o")) { // Check if "o" is in the product name print(product); } } }
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

Osio 4. Luku 4
some-alt