Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ehdollinen Ketjutus | Ohjausrakenteet
Johdatus Golangiin

bookEhdollinen Ketjutus

Voimme käyttää else if -avainsanaa määrittämään lisäehdon, joka arvioidaan, jos edellinen ehto ei täyty:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 2) { fmt.Println("3 is greater than 2") } }

Yllä olevassa ohjelmassa tarkistetaan ensin lauseke 3 > 4, joka on false; siksi ohjelma siirtyy seuraavaan lauseeseen (3 > 2), joka on määritelty else if -avainsanalla. Seuraava ehto on true, joten tulosteessa näytetään toisen Println-lauseen tulos.

Voimme lisätä niin monta lisäehtoa kuin on tarpeen käyttämällä else if -lauseita:

index.go

index.go

copy
1234567891011121314
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 3) { fmt.Println("3 is greater than 3") } else if (3 > 2) { fmt.Println("3 is greater than 2") } else if (3 > 1) { fmt.Println("3 is greater than 1") } }

On tärkeää huomata, että yllä oleva ohjelma tulostaa vain 3 is greater than 2, vaikka seuraava ehto on myös true. Tämä osoittaa, että if-else if -ketju lopettaa ehtojen tarkastelun heti, kun se kohtaa true-ehdon.

Tätä prosessia kutsutaan ehdolliseksi ketjutukseksi, koska määrittelemme ehtoja ketjuna käyttäen if- ja else if -avainsanoja.

Huomio

Ehdollisessa ketjussa suoritetaan vain yksi koodilohko, se joka täyttää ehdon, ja loput ohitetaan.

Vaihtoehtoisesti, sen sijaan että ketjuttaisimme ehtoja if-else if -yhdistelmällä, voimme kirjoittaa jokaisen ehdon erillisillä if-lauseilla. Tämä lähestymistapa tuottaa kuitenkin erilaisen tulosteen, koska kyseessä ei ole enää yksi ketju, vaan joukko erillisiä ehtoja, eikä suoritus lopu, vaikka yksi tai useampi ehto täyttyisi:

index.go

index.go

copy
1234567891011121314151617
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } if (3 > 3) { fmt.Println("3 is greater than 3") } if (3 > 2) { fmt.Println("3 is greater than 2") } if (3 > 1) { fmt.Println("3 is greater than 1") } }

Tähän asti olemme yksinkertaisuuden vuoksi käyttäneet arvoja loogisissa lausekkeissa. On kuitenkin yleisempää käyttää muuttujia tai muuttujien ja arvojen yhdistelmiä loogisissa lausekkeissa:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var value int = 10 if (value == 10) { fmt.Println("The variable has the expected value.") } }

Ehtoketjussa voidaan käyttää else-avainsanaa osoittamaan koodilohko, joka suoritetaan, jos mikään ketjun ehdoista ei täyty:

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var value int = 70 if (value < 50) { fmt.Println("The value is less than 50") } else if (value == 50) { fmt.Println("The value is equal to 50") } else { fmt.Println("The value is greater than 50") } }
question mark

Mitkä riveistä sisältyvät tulosteeseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

bookEhdollinen Ketjutus

Pyyhkäise näyttääksesi valikon

Voimme käyttää else if -avainsanaa määrittämään lisäehdon, joka arvioidaan, jos edellinen ehto ei täyty:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 2) { fmt.Println("3 is greater than 2") } }

Yllä olevassa ohjelmassa tarkistetaan ensin lauseke 3 > 4, joka on false; siksi ohjelma siirtyy seuraavaan lauseeseen (3 > 2), joka on määritelty else if -avainsanalla. Seuraava ehto on true, joten tulosteessa näytetään toisen Println-lauseen tulos.

Voimme lisätä niin monta lisäehtoa kuin on tarpeen käyttämällä else if -lauseita:

index.go

index.go

copy
1234567891011121314
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } else if (3 > 3) { fmt.Println("3 is greater than 3") } else if (3 > 2) { fmt.Println("3 is greater than 2") } else if (3 > 1) { fmt.Println("3 is greater than 1") } }

On tärkeää huomata, että yllä oleva ohjelma tulostaa vain 3 is greater than 2, vaikka seuraava ehto on myös true. Tämä osoittaa, että if-else if -ketju lopettaa ehtojen tarkastelun heti, kun se kohtaa true-ehdon.

Tätä prosessia kutsutaan ehdolliseksi ketjutukseksi, koska määrittelemme ehtoja ketjuna käyttäen if- ja else if -avainsanoja.

Huomio

Ehdollisessa ketjussa suoritetaan vain yksi koodilohko, se joka täyttää ehdon, ja loput ohitetaan.

Vaihtoehtoisesti, sen sijaan että ketjuttaisimme ehtoja if-else if -yhdistelmällä, voimme kirjoittaa jokaisen ehdon erillisillä if-lauseilla. Tämä lähestymistapa tuottaa kuitenkin erilaisen tulosteen, koska kyseessä ei ole enää yksi ketju, vaan joukko erillisiä ehtoja, eikä suoritus lopu, vaikka yksi tai useampi ehto täyttyisi:

index.go

index.go

copy
1234567891011121314151617
package main import "fmt" func main() { if (3 > 4) { fmt.Println("3 is greater than 4") } if (3 > 3) { fmt.Println("3 is greater than 3") } if (3 > 2) { fmt.Println("3 is greater than 2") } if (3 > 1) { fmt.Println("3 is greater than 1") } }

Tähän asti olemme yksinkertaisuuden vuoksi käyttäneet arvoja loogisissa lausekkeissa. On kuitenkin yleisempää käyttää muuttujia tai muuttujien ja arvojen yhdistelmiä loogisissa lausekkeissa:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var value int = 10 if (value == 10) { fmt.Println("The variable has the expected value.") } }

Ehtoketjussa voidaan käyttää else-avainsanaa osoittamaan koodilohko, joka suoritetaan, jos mikään ketjun ehdoista ei täyty:

index.go

index.go

copy
12345678910111213
package main import "fmt" func main() { var value int = 70 if (value < 50) { fmt.Println("The value is less than 50") } else if (value == 50) { fmt.Println("The value is equal to 50") } else { fmt.Println("The value is greater than 50") } }
question mark

Mitkä riveistä sisältyvät tulosteeseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt