Kontrollirakenteet

Kontrollirakenteet voidaan nähdä tietokoneohjelmien rakennuspalikoina. Ne ovat komentoja, jotka mahdollistavat ohjelman “päätöksenteon”, seuraten yhtä polkua tai toista. Ohjelma ei yleensä rajoitu lineaariseen käskyjen sarjaan, koska sen prosessin aikana se voi haarautua, toistaa koodia tai ohittaa osioita. Kontrollirakenteet ovat lohkoja, jotka analysoivat muuttujia ja valitsevat suunnat, joihin mennä annettujen parametrien perusteella.

Ohjelmointikielten peruskontrollirakenteet ovat:

  • Ehdolliset (tai valinta): käytetään suorittamaan yksi tai useampi lause, jos ehto täyttyy.

  • Silmukat (tai iterointi): käytetään toistamaan lausetta tietyn määrän kertoja tai niin kauan kuin ehto täyttyy.

Ehdolliset

Ehdolliset ovat ohjelmoinnin ytimessä. Niiden idea on, että ne antavat sinun hallita suoritettavan koodin kulkua ohjelman eri ehtojen perusteella (esim. käyttäjältä otettu syöte tai koneen sisäinen tila, jossa ohjelma suoritetaan). Tässä tutkimme “if”-lauseiden, “else if” -lauseiden ja “else”-lauseiden ehdollisia kontrollirakenteita.

If-lauseet

If-lauseet suorittavat yhden tai useamman lauseen, kun ehto täyttyy. Jos ehdon testaaminen palauttaa totuusarvon true, lause suoritetaan. Mutta jos palautetaan false (ehto ei täyty), niin mitään ei tapahdu.

const number = 1
if(number < 10)  {
  console.log("Ehto täyttyi!") //"Ehto täyttyi!"
  console.log("Alle 10") //"Alle 10"
}
//Yhden rivin ehdollisissa lauseissa voit myös jättää aaltosulut pois
if(number < 10)
  console.log("Alle 10") //"Alle 10"
//Voit myös kirjoittaa yhden rivin ehdollisia lauseita yksittäisille riveille
if(number < 10) console.log("Alle 10") //"Alle 10"
if(number > 10) console.log("Yli 10") //Mitään ei tapahdu

Else if ja else -lauseet

If else-kontrollirakenne antaa ohjelman seurata vaihtoehtoisia suoritusteitä. Käytä else-lausetta määrittääksesi koodilohkon, joka suoritetaan, jos kaikki ehdot ovat epätosia.

if (condition1) {
// koodilohko, joka suoritetaan, jos condition1 on tosi
} else if (condition2) {
// koodilohko, joka suoritetaan, jos condition1 on epätosi ja condition2 on tosi
} else {
// koodilohko, joka suoritetaan, jos condition1 on epätosi ja condition2 on epätosi
}

Tosi ja epätosi arvo

JavaScriptissä tosi on arvo, joka katsotaan todeksi, kun se kohdataan totuusarvokontekstissa (Boolean). Epätosi arvo on arvo, joka taas katsotaan epätodeksi, kun se kohdataan totuusarvokontekstissa.

Tyhjä merkkijono ( ‘’ ), numero 0, null, NaN (Not a Number), boolean false ja määrittelemättömät muuttujat ovat kaikki “epätosia”. Kaikki muu on “tosia”. Huomioitavia seikkoja: merkkijonot “0” ja “false” katsotaan molemmat tosiksi!

function logTruthy(value) {
  if(value) console.log("Tosi arvo")
}
logTruthy(1) //"Tosi arvo"
logTruthy("false") //"Tosi arvo"
logTruthy(true) //"Tosi arvo"
logTruthy(0) //Mitään ei tapahdu
logTruthy(undefined) //Mitään ei tapahdu
logTruthy(NaN) //Mitään ei tapahdu
logTruthy(false) //Mitään ei tapahdu

Ehdolliset

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.

Silmukat

Silmukkalauseet eivät ole muuta kuin monivaiheisten prosessien automatisointia järjestämällä toimintojen sekvenssejä ja ryhmittelemällä osat, jotka on toistettava. Myös ohjelmoinnin keskeinen osa, iterointi (tai silmukointi) antaa tietokoneille suuren osan niiden voimasta. Ne voivat toistaa vaiheiden sekvenssiä niin usein kuin tarpeen, ja yksinkertaisten vaiheiden sopivat toistot voivat ratkaista monimutkaisia ongelmia.

Yleisesti ottaen on olemassa kahdenlaisia “silmukointitekniikoita”:

  • “While-silmukat” ja “Toista-silmukat”: perustuvat loogisen ehdon alkamiseen ja tarkistamiseen. Ehto testataan silmukkarakenteen alussa tai lopussa.

  • “For-silmukat”: ovat niitä, jotka suoritetaan määrätyn määrän kertoja, kuten laskurin tai indeksin ohjaamana.

while

While-lause suorittaa annetun lauseen niin kauan kuin annettu ehto on tosi. Esimerkiksi alla oleva koodilohko kasvattaa muuttujaa c arvoon 10:

while (c < 10) {
  c += 1;
  // …
}

Tämä kontrollisilmukka tunnistaa myös break- ja continue-avainsanat. Break-avainsana aiheuttaa silmukan välittömän päättymisen, jolloin silmukka päättyy mistä tahansa while-lohkon sisältä.

Continue-avainsana päättää nykyisen while-lohkon tai -lauseen iteraation ja tarkistaa ehdon nähdäkseen, onko se tosi. Jos se on tosi, silmukka alkaa uudelleen.

do … while

Do … while -lause suorittaa annetun lauseen niin kauan kuin annettu ehto on tosi. Kuitenkin toisin kuin while-lause, tämä kontrollirakenne suorittaa lauseen tai lohkon aina vähintään kerran. Esimerkiksi alla oleva koodilohko kasvattaa muuttujaa c arvoon 10:

do {
  c += 1;
} while (c < 10);

Kuten while-lauseessa, break ja continue toimivat samalla tavalla.

for

Suorittaa koodilohkon tietyn määrän kertoja. Syntaksi on: for (<alkuilmaisu>;<ehto>;<lisäyslause>). Alkuilmaisu suoritetaan kerran, ehto tarkistetaan ennen jokaisen silmukan alkua, lisäyslause suoritetaan jokaisen silmukan lopussa.

for (let i=0; i< 3; i++) {
  // iteroi, kunnes i ei enää ole pienempi kuin 3
}

On myös muita for-silmukan versioita, kuten for/in, joka käy läpi objektin ominaisuuksia, ja for/of, joka käy läpi iteroitavan objektin (esimerkiksi taulukon) arvoja.

While

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.

Taulukon läpikäynti

Huom: lähetyspainike ei välttämättä ole näkyvissä, ellei vieritä alaspäin

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.

Toista sävel

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.