Ohjelmoinnissa ehtolauseet ovat keskeisiä rakenteita, jotka mahdollistavat koodin suorituksen haarautumisen eri suuntiin muuttujien arvojen perusteella. Tutkimme tässä oppaassa ehtolauseita WinUI-esimerkin kautta C#-kielellä, mutta sama asia pätee lähes jokaiseen ohjelmointikieleen. Sovelluksessasi on esimerkiksi painike, jota klikkaamalla käyttäjä voi tehdä jotain toimintoja. Ehtolauseiden avulla voit määrittää, mitä sovelluksessa tapahtuu käyttäjän toimien perusteella.
Lisätäänpä tekstikenttä, johon käyttäjä voi syöttää tekstiä. IntelliSense-toiminto auttaa sinua kirjoittamaan koodin oikein, ehdottamalla mahdollisia komentoja ja syntaksia. Kirjoittamalla ”Textbox” ja painamalla Tab, editori auttaa sinua täydentämään koodia ja voit antaa tekstikentälle nimen, esimerkiksi "tekstisyote"
.
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBox x:Name="tekstisyote"></TextBox> <TextBlock x:Name="tekstikentta" Text="Testataan jotain" /> <Button x:Name="myButton" Click="myButton_Click">Click Me</Button> </StackPanel>
Mitä tapahtuu, kun käyttäjä klikkaa painiketta sovelluksessasi? Voimme luoda string-tyyppisen muuttujan, johon tallennetaan tekstikentässä oleva teksti. Käytetään camel case-nimeämistapaa, jossa nimi alkaa pienellä kirjaimella, mutta seuraavat sanat isolla. Tämä vain auttaa tunnistamaan muuttujien tyypin nopealla silmäyksellä. Kun kyseessä on muuttujien ja metodien nimeäminen, eri ohjelmointikielissä ja -ympäristöissä on erilaisia käytäntöjä. Camel case on yksi yleisesti käytetty tapa, mutta esimerkiksi alaviivoja käyttävä snake_case on myös mahdollinen. Tärkeintä on pitää nimeämiskäytännöt johdonmukaisina koko projektin läpi.
Tässä tapauksessa voimme antaa muuttujalle nimen "tekstiString"
. Muuttujaan tallennettu teksti voidaan sitten käyttää ehtolauseissa, jotka määrittävät, mitä sovelluksessa tapahtuu seuraavaksi. IntelliSense on erittäin hyödyllinen myös muuttujien ja metodien nimeämisessä. Kun olet antanut muuttujalle nimen ja aloitat sen käyttämisen koodissa, IntelliSense ehdottaa sinulle tämän muuttujan nimeä, mikä nopeuttaa koodin kirjoittamista ja vähentää virheiden mahdollisuutta. Lisäksi se tarjoaa ehdotuksia siihen, millaisia metodeja ja ominaisuuksia kyseisellä muuttujalla on käytettävissä. Esimerkiksi tekstikentän sisältöön pääsee käsiksi .Text
-syntaksilla, jonka IntelliSense osaa ehdottaa.
Kun olet kirjoittanut ohjelmakoodissa if-lauseen, se alkaa avainsanalla if
, jota seuraa sulkeiden sisälle laitettu ehto. Ehto on kysymys, johon vastaus on joko tosi tai epätosi. Tämän ehtolauseen perässä tulee aaltosulkeiden väliin sijoitettu koodiblokki, joka suoritetaan, mikäli ehto on tosi.
Koodiblokit ovat osia ohjelmakoodista, jotka on ryhmitelty yhteen tehtävän tai toiminnallisuuden mukaan. Ne ovat kuin pieniä ohjelman osia, joita voidaan suorittaa ehdollisesti tai toistuvasti. Koodieditorissa nämä blokit voivat usein olla avattavissa ja suljettavissa, jolloin koodin lukeminen ja ymmärtäminen helpottuu.
Ehtolausen sisällä voit suorittaa mitä tahansa koodia. Esimerkiksi, voit luoda uuden merkkijonon, jonka nimi on tulos
. Alusta tämä merkkijono tyhjäksi ja sitten, ehtolauseen sisällä, voit muuttaa tämän merkkijonon arvoa. Jos ehto on tosi, voit esimerkiksi asettaa tuloksen arvoksi "ehto onnistui"
.
Nyt, mitä ehdolle sitten tapahtuu? Ehtona voidaan käyttää esimerkiksi merkkijonovertailua. Jos ohjelma saa syötteenä merkkijonon, voit tarkistaa, onko syötteen arvo esimerkiksi "hei"
. Jos se on, ehto on tosi ja tulos
-merkkijonoon kirjoitetaan "ehto onnistui"
. Tämä arvo voidaan sitten näyttää käyttäjälle esimerkiksi tekstikentässä.
string tekstiString = tekstisyote.Text; string tulos = ""; if (tekstiString == "hei") { tulos = "ehto onnistui"; } tekstikentta.Text = tulos;
Joskus tarvitset vaihtoehtoisia toimenpiteitä. Tämä on mahdollista else
-avainsanalla, joka toimii kuin suomen kielen ”tai muuten”. Jos ehto ei ole tosi, else
-blokin koodi suoritetaan. Else-blokissa voit vaikkapa asettaa tulos
-merkkijonoon arvon "jotain meni väärin"
.
if (tekstiString == "hei") { tulos = "ehto onnistui"; } else { tulos = "jotain meni väärin"; }
Voit myös käyttää useampia ehtoja peräkkäin else if
-lauseilla. Tällöin voit tarkistaa useita ehtoja peräkkäin ja suorittaa eri koodiblokkeja eri tilanteissa. Esimerkiksi, jos syöte ei ole ”hei” mutta on ”heippa”, voit asettaa ”tulos”-merkkijonoon arvon ”jaha, no heippa”.
if (tekstiString == "hei") { tulos = "ehto onnistui"; } else if (tekstiString = "heippa") { tulos = "jaha, no heippa"; } else { tulos = "jotain meni väärin"; }
Näin voit rakentaa monimutkaisempia ehtolauseketjuja ja tehdä ohjelmasta monipuolisemman. Käyttäjä saa erilaisia tuloksia syöttämästään tekstistä riippuen: ”hei” antaa tuloksen ”ehto onnistui”, ”heippa” tuloksen ”jaha, no heippa” ja kaikki muu antaa tuloksen ”jotain meni väärin”. Tämä tarjoaa joustavan ja monipuolisen tavan ohjata ohjelman toimintaa.