уторак, 22. септембар 2015.

If else statement i swich statement u C++ programskom jeziku



Odluke, odlučivanje i još kako ih programeri zovu grananje su najvažnija sposobnost računara da reaguju na različite uslove. I pored toga što računari ne razmišljaju kao ljudska bića ona perfektno i precizno donose jednostavne odluke. Računar će uvek tačno i precizno izvršiti svaku vašu naredbu čak i ako je vaša naredba besmislena. Instrukcije za odlučivanje zavise isključivo od programera.


( If else statement u C++ programskom jeziku )

Međutim ako pravilno unesete i sinhronizujete mnogobrojne odluke poput; ako prodajete više krušaka nego jabuka u prvoj trećini prodaje istih, onda spusti cenu jabuka za 10 procenata ili spustite cenu krušaka za 8 procenata. Nizom pravilno napisanih uslova, grananja; vaš program jednostavno postaje pametniji. Na sličan način se gradi i AI – ArtificialIntelligenceveštačka inteligencija. Najjednostavniji oblik if iskaza je:


if ( izraz ) iskaz;

Ovaj oblik se u kodu piše i ovako:

if ( izraz )
{
         iskaz;

}


Ako je A tačno onda uradi B. Pogledajte jednostavan primer. Ako imate 10 ili više kilograma jabuka onda obavesti korisnika:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
       short apple = 0;

       cout << "How much do you weigh apples? ";
       cin >> apple;

       if (apple >= 10) cout << "You have 10 or even more kilos apples." << endl << endl;

       system("PAUSE");
       return 0;

}

Pogledajte šta se dešava kad pokrenemo ovaj program i unesemo vrednost 15: 


How much do you weigh apples? 15
You have 10 or more kilos apples.

Press any key to continue . . . 

Međutim ako hoćete da korisnika obavestite i kad ima manje od 10 kilograma jabuka, možete da mu dodate ponovo još jedan uslov if ili da već postojećem uslovu dodate prateći izraz else. Ako je A tačno uradi B, ako nije uradi C. 

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
       short apple = 0;

       cout << "How much do you weigh apples? ";
       cin >> apple;

       if (apple >= 10)
       {
             cout << "You have 10 or even more kilos apples." << endl << endl;

       }
       else
       {
             cout << "You have less than 10 kilos apples." << endl << endl;

       }

       system("PAUSE");
       return 0;

}



Kad pokrenete program i unesete vrednost 5 dobijete:

How much do you weigh apples? 5 
You have less than 10 kilos apples.

Press any key to continue . . .

Ali šta ako hoćete da korisnika posebno obavestite kada ima tačno 10 kg jabuka, posebno kad ima manje i posebno kad ima više. Za više uslova koristimo prateći objekat else if. Ako je A tačno onda uradi B ili ako je C tačno uradi D ili ako ništa od navedenih uslova nije tačno uradi E. 

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
       short apple = 0;

       cout << "How much do you weigh apples? ";
       cin >> apple;
      
       if (apple < 10)
       {
             cout << "You have less than 10 kilos apples." << endl << endl;

       }
       else if (apple == 10)
       {
             cout << "You have 10 kilos apples exactly." << endl << endl;

       }
       else
       {
             cout << "You have more than 10 kilos apples." << endl << endl;

       }

       system("PAUSE");
       return 0;

}

Sad kad pokrenete program i unesete npr. vrednost 10; dobićete:


How much do you weigh apples? 10 
You have 10 kilos apples exactly.

Press any key to continue . . . 

Kao što vidite rad sa odlukama u programskom jeziku C++ je jednostavan i ne razlikuje se programerski od programiranja uslova u C ili C# programskom jeziku. Ali šta kad treba da pišemo mnogo uslova? Da pišemo svaki uslov pojedinačno ima smisla ukoliko pišemo manje uslova ali kad pišemo mnogo tada je bolje koristiti naredbu switch od naredbe if.

Naredba switch case

Za razliku od if, kontrolna struktura switch nije toliko neophodna u programiranju. Retko se sreće u starijim programima ali je čitljivija. I pored toga šta sa if, else if i else se može isprogramirati sve što i sa switch naredbom savetujem vam da kod većine uslova koristite switch. Na naš kod dodaćemo još uslova ali sa switch naredbom. 

switch (apple)
       {
             case 10:
             cout << "You get 384.00 $ for 10 kilos apples in New York." << endl << endl;
             break;

             case 20:
                    cout << "You get 768.00 $ for 20 kilos apples in New York." << endl << endl;
                    break;

             case 30:
                    cout << "You get 1,152.00 $ for 30 kilos apples in New York." << endl << endl;
                    break;

       default:
             cout << "You have to have 10, 20 or 30 kilos apples exactly for packing ." << endl << endl;
             break;
       }

Kao što vidite struktura switch se sastoji od specijalnih formata ili prateći naredbi; case i default koji se nazivaju i labeled statements. Prvo se procenjuje vrednost izraza koji se nalazi pored ključni reči switch. Ako postoji case naredba označene tom vrednošću, vrednost se prosleđuje odgovarajućoj case naredbi ali ukoliko ne postoji case za datu vrednost, onda se vrednost prosleđuje default-u. Prepravite kod programa da izgleda ovako: 

#include "stdafx.h"
#include <iostream>
#include "Decisions1.h"
using namespace std;

int main()
{
       short apple = 0;

       cout << "How much do you weigh apples? ";
       cin >> apple;
      
       if (apple < 10)
       {
             cout << "You have less than 10 kilos apples." << endl;

       }
       else if (apple == 10)
       {
             cout << "You have 10 kilos apples exactly."  << endl;

       }
       else
       {
             cout << "You have more than 10 kilos apples." << endl;

       }

       switch (apple)
       {
             case 10:
             cout << "You get 384.00 $ for 10 kilos apples in New York." << endl << endl;
             break;

             case 20:
                    cout << "You get 768.00 $ for 20 kilos apples in New York." << endl << endl;
                    break;

             case 30:
                    cout << "You get 1,152.00 $ for 30 kilos apples in New York." << endl << endl;
                    break;

       default:
             cout << "You have to have 10, 20 or 30 kilos apples exactly for packing ." << endl << endl;
             break;
       }

       system("PAUSE");
       return 0;

}

Pokrenite program i dobićete ovakav rezultat ukoliko ukucate 20:

How much do you weigh apples? 20
You have more than 10 kilos apples.
You get 768.00 $ for 20 kilos apples in New York.

Press any key to continue . . .

Kako to sve izgleda možete pogledati i na video-u: 


 ( C++ Tutorial - 4. If else and switch case statement )