e-gradiva     HTML CSS JavaScript Načrtovanje    
  logotip  
SERŠ Maribor Iskanje Primeri

Odločitve

Življenje ne gre v ravni črti. V vsakdanjem življenju se je večkrat potrebno odločiti med dvema ali več možnostmi. Tako je tudi v programskem okolju. Skoraj ni resnejšega programa brez odločitev med več možnostmi, oziroma izvrševanjem določenih stavkov samo, če je izpolnjen nek pogoj. Take odločitvene probleme rešujemo na več načinov.

Pogojni operator ?

Pogojni operator je krajši zapis if(...) ... else .... Operator ima tri operande. Prvi operand je pogoj, ki se izračuna kot logična vrednost true ali false, drugi operand je izraz, ki bo vrnjem, če je pogoj true in tretji operand je izraz, ki bo vrnjen, če je pogoj false.

Primer:

ocena="neocenjen"
document.write("Ocena je " + ((ocena > 1) ? "pozitivna" : "ni pozitivna"))

Pogojni stavek if

Pogojni stavek if ponuja možnost izvršitve določenega stavka samo v primeru, ko je izpolnjen določen pogoj. Pogojni stavek se zapiše s ključno besedo if, ki ji sledi pogoj (izraz, ki vrne vrednost true ali false, zapisan v oklepajih), temu pa stavek, ki se ga želi izvesti, Če je pogoj izpolnjen (če vrne vrednost true). Če pogoj ni izpolnjen, se stavek/stavki preskoči/jo. V kolikor je stavkov več, jih je potrebno pisati v zavitih oklepajih { in }.

if (pogoj) stavek

ali

if (pogoj)
   {
   stavki
   }

V kolikor se v primeru neizpolnjenega pogoja (pogoj vrne vrednost false) želi izvesti se nek/e drugi/e stavek/e, se napiše še ključno besedo else:

if (pogoj) stavek
   else stavek 2

ali

if (pogoj)
   {
   stavki 1
   }
else
   {
   stavki 2
   }

Mnogo pogojev primerja v odločitvenih stavkih vrednosti v posebnih pogojih. Neka lastnost predmeta je lahko definirana ali pa ni. Obstaja nekaj okrajšav, ki vrnejo true ali false (ali ekvivalent):

truefalse
neprazen nizprazen niz
vse razen nullnull
predmet obstajapredmet ne obstaja
lastnost je določenalastnost ni določena

Stavek switch

Večkrat se ne odloča z da ali ne, izbira se lahko med več možnostmi samo na podlagi različnih vrednostih nekega izraza. Lahko bi se uporabilo kombinacijo zaporednih gnezdenih pogojnih stavkov if...else. Preprostejša je uporaba stavka switch. Tega se zapiše tako v jeziku C:

switch (izraz)
{
   case vrednost_1:
      stavek/stavki_1
      [ break; ]
   case vrednost_2:
      stavek/stavki_2
      [ break; ]
   ...
   [ default:
      stavek/stavki_n ]
}

Program izračuna vrednost izraza izraz ter poišče stavek case s to vrednostjo. Vrednosti, ki sledijo besedi case, morajo biti konstante. Če program najde ustrezen stavek case, izvrši vse stavke, ki sledijo, razen če prej ne naleti na stavek break (ni ga potrebno navesti v switch), ki povzroči skok iz stavka switch. Če stavka case z ustrezno vrednostjo ni, izvrši vse stavke, ki sledijo besedi default. Tudi opcije default ni potrebno navesti, v tem primeru stavek ne bo storil ničesar.

SERŠ Maribor : Strokovna gimnazija : 2004 : Leon Borko