Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele If-Else-Ketju | Ohjausrakenteet
C# Perusteet

bookIf-Else-Ketju

Voimme lisätä lisäehtoja käyttämällä else if -avainsanaa. Lisäehdot arvioidaan, jos aiemmat ehdot eivät täyty.

if (expression) 
{
    // code if first condition is met
}
else if (expression)
{
    // code if second condition is met
} else 
{
    // code if no condition is met
}


Tarkastellaan esimerkkiä, jossa käytetään if else -ketjua:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else if(value_1 == value_2) { Console.WriteLine("Value 1 is equal to Value 2"); } } } }

Yllä olevassa ohjelmassa ketjutimme ehtoja käyttämällä if-else if -rakennetta. Tätä kutsutaan ehdolliseksi ketjutukseksi. Ensimmäinen ehto value_1 < value_2 arvioidaan. Koska se on false, ohjelma siirtyy seuraavaan ehtoon value_1 > value_2, joka on true, ja suorittaa kyseisen koodilohkon sekä lopettaa ketjun suorittamisen siihen.

Ehdollisen ketjutuksen keskeinen ominaisuus on, että ketjun suoritus lopetetaan heti, kun jokin ehto täyttyy.

Tarkastellaan seuraavaa koodia:

main.cs

main.cs

copy
12345678910111213141516171819202122232425
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } else if(value > 7) { Console.WriteLine("Value is bigger than 7"); } else if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

Vaikka kaikki kolme ehtoa ovat true, suoritus pysähtyy ensimmäiseen ehtoon, koska kyseessä on ketju.

Kokeillaan nyt kirjoittaa sama käyttämällä yksinkertaisia if-avainsanoja ilman ketjutusta:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } if(value > 7) { Console.WriteLine("Value is bigger than 7"); } if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

Yllä olevassa tapauksessa jokainen ehto arvioidaan erikseen eikä niitä käsitellä ketjuna, joten kaikki kolme lausetta tulostetaan.

Voimme myös lisätä else-avainsanan if-else-ketjun loppuun, jolloin se suoritetaan, jos mikään ehto ei täyty:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else { Console.WriteLine("Value 1 is equal to Value 2"); } } } }
question mark

Mitkä rivit sisältyvät seuraavan ohjelman tulosteeseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 9

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain the difference between using chained if-else and separate if statements?

Can you provide more examples of conditional chaining?

What happens if none of the conditions in the if-else chain are true?

Awesome!

Completion rate improved to 1.59

bookIf-Else-Ketju

Pyyhkäise näyttääksesi valikon

Voimme lisätä lisäehtoja käyttämällä else if -avainsanaa. Lisäehdot arvioidaan, jos aiemmat ehdot eivät täyty.

if (expression) 
{
    // code if first condition is met
}
else if (expression)
{
    // code if second condition is met
} else 
{
    // code if no condition is met
}


Tarkastellaan esimerkkiä, jossa käytetään if else -ketjua:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else if(value_1 == value_2) { Console.WriteLine("Value 1 is equal to Value 2"); } } } }

Yllä olevassa ohjelmassa ketjutimme ehtoja käyttämällä if-else if -rakennetta. Tätä kutsutaan ehdolliseksi ketjutukseksi. Ensimmäinen ehto value_1 < value_2 arvioidaan. Koska se on false, ohjelma siirtyy seuraavaan ehtoon value_1 > value_2, joka on true, ja suorittaa kyseisen koodilohkon sekä lopettaa ketjun suorittamisen siihen.

Ehdollisen ketjutuksen keskeinen ominaisuus on, että ketjun suoritus lopetetaan heti, kun jokin ehto täyttyy.

Tarkastellaan seuraavaa koodia:

main.cs

main.cs

copy
12345678910111213141516171819202122232425
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } else if(value > 7) { Console.WriteLine("Value is bigger than 7"); } else if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

Vaikka kaikki kolme ehtoa ovat true, suoritus pysähtyy ensimmäiseen ehtoon, koska kyseessä on ketju.

Kokeillaan nyt kirjoittaa sama käyttämällä yksinkertaisia if-avainsanoja ilman ketjutusta:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value = 10; if(value > 5) { Console.WriteLine("Value is bigger than 5"); } if(value > 7) { Console.WriteLine("Value is bigger than 7"); } if(value > 9) { Console.WriteLine("Value is bigger than 9"); } } } }

Yllä olevassa tapauksessa jokainen ehto arvioidaan erikseen eikä niitä käsitellä ketjuna, joten kaikki kolme lausetta tulostetaan.

Voimme myös lisätä else-avainsanan if-else-ketjun loppuun, jolloin se suoritetaan, jos mikään ehto ei täyty:

main.cs

main.cs

copy
1234567891011121314151617181920212223242526
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { int value_1 = 9; int value_2 = 7; if(value_1 < value_2) { Console.WriteLine("Value 1 is smaller than Value 2"); } else if(value_1 > value_2) { Console.WriteLine("Value 1 is bigger than Value 2"); } else { Console.WriteLine("Value 1 is equal to Value 2"); } } } }
question mark

Mitkä rivit sisältyvät seuraavan ohjelman tulosteeseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 9
some-alt