Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Iteraatio Kaksiulotteisessa Taulukossa | Taulukot
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Java Perusteet

bookIteraatio Kaksiulotteisessa Taulukossa

Kuinka iteroida kaksiulotteisen taulukon läpi for-silmukalla?

Kaksiulotteisen taulukon läpikäynti voi aluksi tuntua haastavalta ymmärtää, joten älä huoli, jos se ei heti avaudu. Tässä luvussa esitän, miten se tehdään, ja selitän, miten se toimii.

Käytämme sisäkkäistä silmukkaa iteroidessamme kaksiulotteisen taulukon läpi, eli toinen silmukka toisen sisällä. Ulkoinen silmukka iteroi rivit, kun taas sisäinen silmukka iteroi sarakkeet. Tarkastellaan syntaksia kaksiulotteisen taulukon läpikäyntiin käyttäen esimerkkitaulukkoa, jonka loimme edellisessä luvussa:

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { int[][] twoDimensionalArray = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; for (int i = 0; i < twoDimensionalArray.length; i++) { for (int j = 0; j < twoDimensionalArray[0].length; j++) { System.out.print(twoDimensionalArray[i][j] + " "); } System.out.println(); } } }

Tarkastellaan yllä annetun koodiesimerkin jokaisen elementin merkitystä:

  • int[][] twoDimensionalArray =: tämä rivi alustaa kaksiulotteisen taulukon;
  • for (int i = 0; i < twoDimensionalArray.length; i++): ensimmäinen for-silmukka käy läpi matriisin rivit. Kun olemme ensimmäisellä rivillä, ohjelma siirtyy sisäkkäiseen silmukkaan, mikä ei vaikuta ulkoiseen silmukkaan. Muuttuja i ilmaisee nykyisen rivin numeron;
  • for (int j = 0; j < twoDimensionalArray[0].length; j++): toinen for-silmukka käy läpi matriisin sarakkeet. Kun olemme rivillä 0, käymme kyseisen rivin sarakkeet läpi. Muuttuja j ilmaisee nykyisen sarakkeen numeron;
  • System.out.print(twoDimensionalArray[i][j] + " "): tällä rivillä käytetään System.out.print-komentoa arvojen näyttämiseen yhdellä rivillä. Katsotaan, miten se toimii: kun olemme rivillä 0, käymme kyseisen rivin sarakkeet läpi. Esimerkiksi array[0][1], sitten array[0][2] ja niin edelleen. Jatkamme sarakkeiden läpikäyntiä niin kauan kuin j on pienempi kuin array[0].length. Kun saavutamme array[0].length, palaamme ulompaan taulukkoon ja siirrymme ensimmäiselle riville. Esimerkiksi array[0][3] -> array[1][0]. Olemme saavuttaneet rajat ja siirtyneet riville 1.
Tehtävä

Swipe to start coding

Laske keskilämpötila jokaiselle viikonpäivälle usean aseman tietojen perusteella.

Annetut tiedot:

  • Asema 1: {20, 22, 24, 19, 21, 23, 25}
  • Asema 2: {18, 20, 22, 19, 20, 22, 24}
  • Asema 3: {21, 23, 25, 22, 24, 26, 28}
  • Asema 4: {19, 21, 23, 20, 22, 24, 26}

Tehtäväsi:

  1. Kirjoita metodi nimeltä calculateDailyAverages(int[][] temperatures), joka palauttaa double[]-taulukon.
  2. Tässä metodissa:
    • Käy läpi jokainen päivä (kaksiulotteisen taulukon sarakkeet).
    • Alusta totalTemp jokaiselle päivälle lämpötilojen summan tallentamista varten.
    • Käytä sisäkkäistä silmukkaa käydäksesi läpi kaikki asemat (rivit).
    • Laske kunkin aseman lämpötila kyseiselle päivälle yhteen.
    • Jaa kokonaissumma asemien määrällä saadaksesi keskiarvon.
    • Tallenna tulos taulukkoon.
  3. Palauta keskiarvot sisältävä taulukko.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

close

bookIteraatio Kaksiulotteisessa Taulukossa

Pyyhkäise näyttääksesi valikon

Kuinka iteroida kaksiulotteisen taulukon läpi for-silmukalla?

Kaksiulotteisen taulukon läpikäynti voi aluksi tuntua haastavalta ymmärtää, joten älä huoli, jos se ei heti avaudu. Tässä luvussa esitän, miten se tehdään, ja selitän, miten se toimii.

Käytämme sisäkkäistä silmukkaa iteroidessamme kaksiulotteisen taulukon läpi, eli toinen silmukka toisen sisällä. Ulkoinen silmukka iteroi rivit, kun taas sisäinen silmukka iteroi sarakkeet. Tarkastellaan syntaksia kaksiulotteisen taulukon läpikäyntiin käyttäen esimerkkitaulukkoa, jonka loimme edellisessä luvussa:

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { int[][] twoDimensionalArray = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; for (int i = 0; i < twoDimensionalArray.length; i++) { for (int j = 0; j < twoDimensionalArray[0].length; j++) { System.out.print(twoDimensionalArray[i][j] + " "); } System.out.println(); } } }

Tarkastellaan yllä annetun koodiesimerkin jokaisen elementin merkitystä:

  • int[][] twoDimensionalArray =: tämä rivi alustaa kaksiulotteisen taulukon;
  • for (int i = 0; i < twoDimensionalArray.length; i++): ensimmäinen for-silmukka käy läpi matriisin rivit. Kun olemme ensimmäisellä rivillä, ohjelma siirtyy sisäkkäiseen silmukkaan, mikä ei vaikuta ulkoiseen silmukkaan. Muuttuja i ilmaisee nykyisen rivin numeron;
  • for (int j = 0; j < twoDimensionalArray[0].length; j++): toinen for-silmukka käy läpi matriisin sarakkeet. Kun olemme rivillä 0, käymme kyseisen rivin sarakkeet läpi. Muuttuja j ilmaisee nykyisen sarakkeen numeron;
  • System.out.print(twoDimensionalArray[i][j] + " "): tällä rivillä käytetään System.out.print-komentoa arvojen näyttämiseen yhdellä rivillä. Katsotaan, miten se toimii: kun olemme rivillä 0, käymme kyseisen rivin sarakkeet läpi. Esimerkiksi array[0][1], sitten array[0][2] ja niin edelleen. Jatkamme sarakkeiden läpikäyntiä niin kauan kuin j on pienempi kuin array[0].length. Kun saavutamme array[0].length, palaamme ulompaan taulukkoon ja siirrymme ensimmäiselle riville. Esimerkiksi array[0][3] -> array[1][0]. Olemme saavuttaneet rajat ja siirtyneet riville 1.
Tehtävä

Swipe to start coding

Laske keskilämpötila jokaiselle viikonpäivälle usean aseman tietojen perusteella.

Annetut tiedot:

  • Asema 1: {20, 22, 24, 19, 21, 23, 25}
  • Asema 2: {18, 20, 22, 19, 20, 22, 24}
  • Asema 3: {21, 23, 25, 22, 24, 26, 28}
  • Asema 4: {19, 21, 23, 20, 22, 24, 26}

Tehtäväsi:

  1. Kirjoita metodi nimeltä calculateDailyAverages(int[][] temperatures), joka palauttaa double[]-taulukon.
  2. Tässä metodissa:
    • Käy läpi jokainen päivä (kaksiulotteisen taulukon sarakkeet).
    • Alusta totalTemp jokaiselle päivälle lämpötilojen summan tallentamista varten.
    • Käytä sisäkkäistä silmukkaa käydäksesi läpi kaikki asemat (rivit).
    • Laske kunkin aseman lämpötila kyseiselle päivälle yhteen.
    • Jaa kokonaissumma asemien määrällä saadaksesi keskiarvon.
    • Tallenna tulos taulukkoon.
  3. Palauta keskiarvot sisältävä taulukko.

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 4. Luku 5
single

single

some-alt