Naredba IF
Naredbu IF koristimo onda kada želimo izvršiti neki kod samo ako je vrijednost nekog odnosnog izraza istinita.
Evo primjera:
#include<iostream>
using namespace std;
main()
{
string password;
cout << "Unesite password: ";
cin >> password;
if(password=="G2105Z") {
cout << "Password tocan!"; }
char x;
cin >> x;
return 0;
}
Definirali smo string password, sa cin naredbom upisali ono što korisnik upiše u varijablu password, zatim slijedi provjera sa IF naredbom.
Sintaksa IF naredbe je zapravo:
if(uvjet) { kod koji se izvšrava }
Naravno nije IF naredba ograničena samo na provjeravanje točnosti. Možete koristiti sve odnosne operatore koje smo objasnili u prošlom tutorijalu. Npr:
#include <iostream>
using namespace std;
int main()
{
int godine;
cout << "Koliko imate godina? ";
cin >> godine;
if (godine < 18 ) {
cout << "Maloljetni ste!"; }
char x;
cin >> x;
return 0;
}
U svrhu učenja isprobajte sve odnosne operatore. Npr. probajte napisati mali program koji će provjeriti da li je broj djeljiv sa 2 (bez ostatka).
U sljedećem tutorijalu ćemo učiti o IF...ELSE naredbi koja vam pruža mogućnost da uz IF naredbu imate i naredbu koja će izvršiti neki kod ukoliko uvjet nije zadovoljen
If...Else naredba
If...Else naredba je proširenje If naredbe. Kao što smo već rekli u prošlim tutorijalu, If naredba omogućuje izvršavanje nekog koda ukoliko je uvjet zadovoljen, a ukoliko nije neće se izvršiti ništa.
Ako bi smo htjeli napraviti da ukoliko uvjet nije zadovoljen da se izvrši neki drugi kod onda koristimo If...Else naredbu.
Evo primjera kako koristiti If...Else naredbu (koristit ćemo primjere iz prošlog tutorijala)
#include<iostream>
using namespace std;
main()
{
string password;
cout << "Unesite password: ";
cin >> password;
if(password=="G2105Z") {
cout << "Password tocan!"; }
else {
cout << "Password netcan!"; }
char x;
cin >> x;
return 0;
}
Kao sto vidite kod je isti kao i za if naredbe, else pa vitičaste zagrade i unutra kod za izvršavanje.
Evo i onog drugog primjera:
#include <iostream>
using namespace std;
int main()
{
int godine;
cout << "Koliko imate godina? ";
cin >> godine;
if (godine < 18 ) {
cout << "Maloljetni ste!"; }
else {
cout << "Punoljetni ste!" }
char x;
cin >> x;
return 0;
}
If...Else If...Else naredba
U prošlom tutorijalu smo govorili o IF...Else naredbi. Ovdje ćemo proširiti tu naredbu tako da možemo ispitati više uvjeta. Za to korisimo If...Else-If...Else narebu.
Evo primjera:
#include <iostream>
using namespace std;
int main()
{
int godine;
cout << "Koliko imate godina? ";
cin >> godine;
if (godine <= 17 ) {
cout << "Maloljetni ste!"; }
else if (godine>=18 and godine<=39) {
cout << "Punoljetni ste"; }
else if (godine>39 and godine<70) {
cout << "Najljepse godine"; }
else {
cout << "Stari ste"; }
char x;
cin >> x;
return 0;
}
Dakle sa ovom narebom možemo ispitati više uvjeta. U ovom primjeru dosta koristimo odnosne operatore, pa ako niste naučite ih (4 tutorijala ispred ovoga).
Sve je isto kao i naredba if...else samo što ovdje možete više puta staviti naredbu else if kako biste ispitali više uvjeta.
else if možete postaviti koliko god hoćete puta, ali ako imate jako puno mogućih uvjeta onda vam preporučam da pogledate sljedeći tutorijal u kojem ćemo vam objasniti kako se koristi switch naredba za ispitivanje mogućih uvjeta.
Naredba while
Oba petlja nam sluzi za definiranje ciklusa sa nepoznatim brojem ponavljanja.
Format naredbe je:
Sintaxa:
while (uvjet)
{
naredbe;
}
npr:
broj=1;
while (broj<5)
{
broj=broj+1; // proizvoljna naredba
}
U ovom primjeru broj je manji od 5 i ova petlja ce se izvršiti, tako da će se povećati za 1.
Slijedeći put će broj biti jednako 2 pa ce se petlja opet izvrsiti. Da bi se ,onda kada broj dobije vrijednost 5, petlja
preskočila tj. ne bi se izvršila i izvršio bi se ostatak koda, jer se nije ispunio uvjet koji glasi da broj mora da bude manji od 5.
#include<iostream.h>
int main ()
{
int broj=1;
while (broj<5)
{
broj=broj+1; //ovo se moze napisati i broj+=1;
}
cout<<"Ovo je broj: "<<broj<<endl;
return 0;
}
Rezultat ovog programa je:
Ovo je broj: 5
Naredba For
Naredba for
Kod while petlje smo imali da inicijlizaciju, uvjet i promjenu vrijednosti imamo na više razlicitih mjesta, dok je kod for petlje to sve sadržano u jednom redu koda tj. izmedu malih zagrada.
Format naredbe:
for (inicijalizacija; uvjet; promjena vrijednosti) naredba;.
ili korištenjem blokova:
for (inicijalizacija; uvjet; promjena vrijednosti) {
naredbe;
}
Uvjet mora biti logicki izraz, dok inicijalizacija i promjena vrijednosti mogu biti bilo kakvi izrazi. Petlja ce se izvršavati dok je uvjet tocan.
Npr:
//Brojac unatrag
#include <iostream.h>
int main ()
{
for (int i=10; i>0; i--) {
cout << i << ", ";
}
cout << "PALI!";
return 0;
}
Rezultat ovog programa:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, PALI!
Ukoliko dodamo na kraju ovog dijela koda “<<endl;”
cout << i << ", "<<endl;
Što ce znaciti da poslije svakog ispisa kursor šalje u novi red.
Nakon ovog rezultat ce biti:
10,
9,
8,
7,
6,
5,
4,
3,
2,
1,
PALI!
Evo na ovoj slici se jasno ilustrira format for petlje:
Naredba switch
Ova naredba sluzi za provjeravanje više uvjeta od jednom i
izvršavanja onoliko radnji koliko je uslova zadovoljeno odnosno tačno.
Ova naredba je korisna ukoliko trebamo provjeriti više "stvari" a da ne petljamo
sa if i else if petljom .
Format ove naredbe je:
switch (varijabla){
case mogucnost1:
naredba;
break;
case mogucnost2:
naredba;
break;
...
}
Pa da svaki red koda objasnimo pojedinacno:
switch (varijabla){
Ovaj dio prijavljuje varijablu (promjenljivu) čiju ćemo tačnost ispitivati.
case mogucnost1:
Ovaj dio provjerava da li je varijabla iz prvog reda jednaka nizu znakova (u ovom slucaju) mogucnost1.
Obavezno : (dvotočka) na kraju.
naredba;
Ovdje upisujemo naredbu ili više njih koje će se izvršavati ukoliko je zadovoljen uvjet.
break;
Ovom rijecju se zatvara niz naredbi i daje se mogucnost novom uslovu.
case mogucnost2:
naredba;
break;
Ovo je samo primjer kako treba postaviti drugi uvjet, tako ćemo dodavati i ostale.
Ukoliko želimo da postavimo neki defaultni uvjet tj. naredbe koje će se izvršiti ukoliko
ni jedan uvjet nije zadovoljen onda ćemo dodati slijedeće:
default:
naredbe;
Ovdje na kraju ne ide break; zato što se podrazumjeva da će default kod biti na kraju tj. zadnji uvjet i da neće
biti više uvjeta.
Ovo sve malo zvuči zamršeno al na konkretnom primjeru će to drukčije (jednostavnije) izgledati.
#include<iostream.h>
int main()
{
int broj=0;
switch (broj){
//provjerava da li je broj=1
case 1:
//ako pšostoji ispisuje 'Broj je 1!!!'
cout<<"Broj je 1!!!"<<endl;
break;
case 2:
cout<<"Broj je 2!!!"<<endl;
break;
//Ukoliko broj nije jednak ni 1 niti 2 onda ispisuje
default:
cout<<"Broj je 0 (nula) !!!"<<endl;
}
return 0;
}
Evo sad za one koji misle da je lakse sa if petljama ispetljati vise uvjeta:
switch (x) {
case 1:
cout << "x je 1";
break;
case 2:
cout << "x je 2";
break;
default:
cout << "x je nepoznato";
}
if (x == 1) {
cout << "x je 1";
}
else if (x == 2) {
cout << "x je 2";
}
else {
cout << "x je nepoznato";
}
Vidimo jednu if i jednu else if petlju zamislite da moramo ispitati 50 vrijednosti tek onda bi bilo petljanja.
Zato toplo preporučujem naredbu switch kod ispitivanja više razlicitih vrijednosti. Dok kod jednostavnih tu je naravno
if i if else.