Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Debuggeri | Kuinka Työskennellä IDE:n Kanssa?
Java OOP

bookDebuggeri

Mikä on debuggeri?

Debuggeri on työkalu, joka auttaa askeltamaan koodisi läpi. Voimme pysäyttää koodin suorituksen tietyssä kohdassa ja käynnistää debuggaustilan nähdäksemme, miten koodimme toimii. Tätä varten meidän täytyy asettaa merkki (breakpoint) riville, jossa haluamme pysäyttää suorituksen.

Meillä on koodi, jonka pitäisi laskea lukujen summa yhdestä kymmeneen mukaan lukien. Tuloksen pitäisi olla 55, mutta saamme vastaukseksi 45. Asetetaan breakpoint silmukan alkuun ymmärtääksemme, miksi vastaus ei täsmää. Tämä tehdään napsauttamalla vasemmalla hiiren painikkeella rivinumeroa, jolloin siihen ilmestyy punainen merkki.

Tässä on kuvakaappauksen koodi, kirjoitettu uudelleen paremman luettavuuden ja selkeyden vuoksi:

Main.java

Main.java

copy
12345678910111213
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }

Työkalut debuggaustilassa

Katsotaan lyhyesti, miten debuggeri toimii ja mitä työkaluja siinä on käytettävissä.

  • Step Over: Tällä painikkeella voidaan jatkaa koodin suorittamista rivi kerrallaan. Kun painiketta painetaan, debuggeri suorittaa nykyisen rivin ja siirtyy seuraavalle riville, pysähtyen jälleen;

  • Step Into: Tällä painikkeella voidaan siirtyä metodin suorittamiseen. Esimerkissämme ei ole metodia, mutta jos sellainen olisi, voisimme astua sen sisään ja tarkastella, mitä siellä tapahtuu;

  • Step Out: Tämä painike toimii päinvastoin kuin edellinen. Sen avulla voidaan poistua metodin tai silmukan suorittamisesta;

  • Muuttujien arvot näkyvät ikkunassa alhaalla tai muuttujien vieressä. Voimme selkeästi nähdä muuttujan result arvon, joka aluksi on nolla.

Koodin läpikäynti

Läpikäyntiä varten napsautetaan "Step Over" -painiketta. Siirrymme for-silmukkaan, ja muuttujan i arvo ilmestyy, joka luodaan for-silmukan sisällä. Aluksi asetamme tämän muuttujan arvoksi nolla.

Seuraavaksi napsautetaan "Step Over" useita kertoja, jotta yksi iteraatio saadaan valmiiksi ja siirrytään konsoliin tarkistamaan, tulostuuko mitään näytölle. Näemme, että muuttujan i arvo kasvoi 1:llä ja näytölle tulostui "0", koska sekä result- että i-muuttujat oli aluksi asetettu nollaksi. 0 + 0 = 0 -> tämä tulostui näytölle.

Ohitetaan muiden lukujen tulostuksen vaiheet konsoliin ja siirrytään loppuun. Juuri tässä voimme nähdä päävirheen silmukassamme. Meidän pitäisi näyttää lukujen summa 0:sta 10:een mukaan lukien 10, mutta emme sisällyttäneet 10:ä. Siksi, kun näemme, että i = 9 ja kun sitä kasvatetaan arvoon 10, poistumme silmukasta, koska 10 !< 10 (10 ei ole pienempi kuin 10).

Tämän ongelman ratkaisemiseksi meidän täytyy muuttaa ehtoa muotoon i <= 10. Silloin saamme oikean tuloksen.

Käytännössä painoimme "Step Over" -painiketta useita kertoja, mikä johti meidät huomaamaan silmukan virheen ja sen korjaamiseen.

Huomautus

Olen esitellyt vain perusdebuggaustyökalut. Oppiaksesi käyttämään niitä, sinun kannattaa harjoitella itse. Voit kirjoittaa vastaavan ohjelman ja itsenäisesti nähdä, miten kaikki toimii. Debuggeri on erittäin hyödyllinen työkalu, koska se auttaa löytämään ja korjaamaan virheitä koodissa.

1. Mikä on debuggerin ensisijainen tarkoitus?

2. Mitä breakpoint mahdollistaa debuggerissa?

3. Mitä "Step Over" -painike tekee debuggerissa?

question mark

Mikä on debuggerin ensisijainen tarkoitus?

Select the correct answer

question mark

Mitä breakpoint mahdollistaa debuggerissa?

Select the correct answer

question mark

Mitä "Step Over" -painike tekee debuggerissa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Awesome!

Completion rate improved to 4.76

bookDebuggeri

Pyyhkäise näyttääksesi valikon

Mikä on debuggeri?

Debuggeri on työkalu, joka auttaa askeltamaan koodisi läpi. Voimme pysäyttää koodin suorituksen tietyssä kohdassa ja käynnistää debuggaustilan nähdäksemme, miten koodimme toimii. Tätä varten meidän täytyy asettaa merkki (breakpoint) riville, jossa haluamme pysäyttää suorituksen.

Meillä on koodi, jonka pitäisi laskea lukujen summa yhdestä kymmeneen mukaan lukien. Tuloksen pitäisi olla 55, mutta saamme vastaukseksi 45. Asetetaan breakpoint silmukan alkuun ymmärtääksemme, miksi vastaus ei täsmää. Tämä tehdään napsauttamalla vasemmalla hiiren painikkeella rivinumeroa, jolloin siihen ilmestyy punainen merkki.

Tässä on kuvakaappauksen koodi, kirjoitettu uudelleen paremman luettavuuden ja selkeyden vuoksi:

Main.java

Main.java

copy
12345678910111213
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }

Työkalut debuggaustilassa

Katsotaan lyhyesti, miten debuggeri toimii ja mitä työkaluja siinä on käytettävissä.

  • Step Over: Tällä painikkeella voidaan jatkaa koodin suorittamista rivi kerrallaan. Kun painiketta painetaan, debuggeri suorittaa nykyisen rivin ja siirtyy seuraavalle riville, pysähtyen jälleen;

  • Step Into: Tällä painikkeella voidaan siirtyä metodin suorittamiseen. Esimerkissämme ei ole metodia, mutta jos sellainen olisi, voisimme astua sen sisään ja tarkastella, mitä siellä tapahtuu;

  • Step Out: Tämä painike toimii päinvastoin kuin edellinen. Sen avulla voidaan poistua metodin tai silmukan suorittamisesta;

  • Muuttujien arvot näkyvät ikkunassa alhaalla tai muuttujien vieressä. Voimme selkeästi nähdä muuttujan result arvon, joka aluksi on nolla.

Koodin läpikäynti

Läpikäyntiä varten napsautetaan "Step Over" -painiketta. Siirrymme for-silmukkaan, ja muuttujan i arvo ilmestyy, joka luodaan for-silmukan sisällä. Aluksi asetamme tämän muuttujan arvoksi nolla.

Seuraavaksi napsautetaan "Step Over" useita kertoja, jotta yksi iteraatio saadaan valmiiksi ja siirrytään konsoliin tarkistamaan, tulostuuko mitään näytölle. Näemme, että muuttujan i arvo kasvoi 1:llä ja näytölle tulostui "0", koska sekä result- että i-muuttujat oli aluksi asetettu nollaksi. 0 + 0 = 0 -> tämä tulostui näytölle.

Ohitetaan muiden lukujen tulostuksen vaiheet konsoliin ja siirrytään loppuun. Juuri tässä voimme nähdä päävirheen silmukassamme. Meidän pitäisi näyttää lukujen summa 0:sta 10:een mukaan lukien 10, mutta emme sisällyttäneet 10:ä. Siksi, kun näemme, että i = 9 ja kun sitä kasvatetaan arvoon 10, poistumme silmukasta, koska 10 !< 10 (10 ei ole pienempi kuin 10).

Tämän ongelman ratkaisemiseksi meidän täytyy muuttaa ehtoa muotoon i <= 10. Silloin saamme oikean tuloksen.

Käytännössä painoimme "Step Over" -painiketta useita kertoja, mikä johti meidät huomaamaan silmukan virheen ja sen korjaamiseen.

Huomautus

Olen esitellyt vain perusdebuggaustyökalut. Oppiaksesi käyttämään niitä, sinun kannattaa harjoitella itse. Voit kirjoittaa vastaavan ohjelman ja itsenäisesti nähdä, miten kaikki toimii. Debuggeri on erittäin hyödyllinen työkalu, koska se auttaa löytämään ja korjaamaan virheitä koodissa.

1. Mikä on debuggerin ensisijainen tarkoitus?

2. Mitä breakpoint mahdollistaa debuggerissa?

3. Mitä "Step Over" -painike tekee debuggerissa?

question mark

Mikä on debuggerin ensisijainen tarkoitus?

Select the correct answer

question mark

Mitä breakpoint mahdollistaa debuggerissa?

Select the correct answer

question mark

Mitä "Step Over" -painike tekee debuggerissa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5
some-alt