E-gradiva > Računalništvo > Programiranje > Upravljanje s programirljivimi napravami > Odločitveni stavki > Stavek If-Else

Prijava

Stavek If-Else

 Izpišimo, da je študent opravil izpit, če je njegova ocena večja od 5:

Stavek if
Izpišimo, da je študent opravil izpit, če je ocena večja od 5, če pa je njegova ocena manjša ali enaka 5 študent ni opravil izpita:
Stavek if-else

V jeziku C++ vrača stavek, ki preverja pogoj, logično vrednost (angleško boolean). Ta vrednost je lahko true (pomeni  "je res" ali "pravilno" ali "da") ali false ( pomeni "ni res" ali "napačno" ali "ne"). Obe vrednosti sta rezervirani besedi.

 

V C++ lahko ta stavek zapišemo tudi s pomočjo pogojnega operatorja:

 

cout << ((ocena > 5) ? "Študent je opravil izpit" : "Študent ni opravil izpita");

 

Z uporabo pogojnega operatorja lahko krmilimo izvajanje programa podobno kot s stavkom if-else. V našem primeru krmilimo izpis glede na rezultat pogoja (v našem primeru (ocena >5). Če je ocena večja od 5, program izpiše, da je študent opravil izpit, drugače izpiše, da študent ni opravil izpita.

 

Pogojni izraz je edini izraz  , ki ima tri operande. Prvi je pogoj, druga dva pa sta poljubna izraza. Vrednost pogojnega izraza je odvisna od prvega operanda (pogoja). Če je izpolnjen (če je njegova vrednost true), dobi rezultat vrednost drugega, sicer pa vrednost tretjega operanda. Splošna oblika pogojnega izraza je:    
 
pogoj ? izraz1 : izraz2

 

Če ima pogoj vrednost "true", dobi pogojni izraz vrednost izraza izraz1, sicer pa vrednost izraza izraz2. Pogoj običajno napišemo v navadnih oklepajih. Izraza izraz1 in izraz2 sta lahko različnega tipa.

 

Zaporedje večih if-else stavkov

 

Zaporedje večih if-else stavkov

Kaj se zgodi, če izvajamo zaporedje večih if-else stavkov:

 

if  ( pogoj_1 )  stavek_1;

else if
( pogoj_2 ) stavek_2;
else if
...

 

Takoj, ko najdemo pogoj, ki je izpolnjen, se izvede stavek za pogojem in se preverjanje konča.

 

 

 

Poskušajte sami rešiti naslednji primer:

 

Napišite program, ki izračuna kakšno oceno bo dobil dijak za kontrolno nalogo, če je je pisal določeno število procentov?

  1.  

    VHOD:

      procenti kontrolne naloge - procenti.

     

    IZHOD:

      ocena kontrolne naloge.

     

  2.  

    Algoritem

     

    Vnesi procente, ki jih je dobil dijak pri kontrolni nalogi.

    if procenti > 90
       dijak je dobil 5

       else
         if procenti > 75
           dijak je dobil 4

         else
           if procenti > 60
             dijak je dobil 3

           else
             if procenti > 50
               dijak je dobil 2

             else
               dijak mora ponovno pisati kontrolno nalogo 

     

  3. //Izracun ocene kontrolne naloge
    # include <iostream.h>
    using namespace std;

    int
    main ()
    {
    int procenti;
    cout << "Vnesi procente, ki jih je dobil dijak pri kontrolni nalogi: ";

    cin >> procenti;
    if
    (procenti > 90)

    cout << "Dijak je dobil 5.";
    else
    if
    (procenti > 75)

    cout << "Dijak je dobil 4.";
    else
    if
    (procenti > 60)

    cout << "Dijak je dobil 3.";
    else
    if
    (procenti > 50)

    cout << "Dijak je dobil 2.";
    else

    cout << "Dijak mora ponovno pisati kontrolno nalogo. ";

    cout << endl;
    return
    0;
    }