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

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 päättyy 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 ilman ketjutusta, käyttämällä pelkkiä if-avainsanoja:

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 1. Luku 33

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 1. Luku 33
some-alt