16.1.2012 dvije godine postojanja naših stranica

Programiranje C++‎ > ‎Grananje‎ > ‎

Naredba switch-case

Naredba switch-case omogućava jednostruko grananje koje ovisi o vrijednosti postavljenog uvjeta.
 
 

Za razliku od višestrukog uvjetnog grananja kod kojeg su uvjeti logički izrazi, u naredbi switch-case uvjet je cjelobrojni izraz ili cjelobrojna varijabla. Izračun cjelobrojnog izraza ili vrijednost cjelobrojne varijable mora biti cijeli broj.

  • Vrijednost uvjeta se uspoređuje s nizom zadanih cjelobrojnih konstanti: konst1, konst2, konst3, itd. Ako je vrijednost uvjeta jednaka nekoj od zadanih konstanti, izvršava se blok naredbi pridružen toj konstanti.
  • Po završetku izvršenog bloka, naredba break prekida izvršavanje switch-case bloka naredbi i nastavlja program prvom naredbom nakon switch‑case bloka.
  • Ako vrijednost uvjeta nije jednaka niti jednoj od ponuđenih konstanti, izvršava se blok naredbi pridružen naredbi default. U slučaju izostavljanja naredbe default program će nastaviti izvršavanje prvom naredbom nakon switch‑case bloka.

Cjelokupni switch‑case blok zapisuje se unutar para otvorena-zatvorena vitičasta zagrada ({}).

 

 
 

 

 

Zadatak:

Treba izračunati ukupni otpor za otpore R1 i R2 ovisno o tome jesu li spojeni serijski ili paralelno. Ispis neka bude oblika:

Otpor R1 (u omima):

Otpor R2 (u omima):

Za serijski spoj otpora upisi 1, a za paralelni 2:

Ako se otpori od ... oma i ... oma spoje u ... ukupni je otpor ... oma.

 

 

Definirane su dvije grane (jedna za paralelni spoj, druga za serijski). Ovisno o tome što korisnik upiše (broj 1 ili broj 2) izvršit će se jedna od dvije grane. U slučaju da korisnik unese vrijednost koja nije 1 ili 2, ispisat će se upozorenje.

 

Rješenje:

 

#include<iostream>

#include<iostream>

using namespace std;

int main()

{

     float R,R1,R2;

     int i;

     cout<<"Otpor R1 (u omima):";

     cin>>R1;

     cout<<"Otpor R2 (u omima):";

     cin>>R2;

     cout<<"Za spoj otpora u seriju upisi 1, a za paralelu 2:";

     cin>>i;

     switch (i)

     {

     case 1:

           R=R1+R2;

           cout<<"Ako se otpori od "<<R1<<" oma i " <<R2;

           cout<<" oma spoje u seriju ukupni je otpor " <<R<<" oma."<<endl;

     break;

     case 2:

           R=(R1*R2)/(R1+R2);

           cout<<"Ako se otpori od "<<R1<<" oma i " <<R2;

           cout<<" oma spoje u paralelu, ukupni je otpor " <<R<<" oma."<<endl;

     break;

     default:

           cout<<"Pogresan unos. Unesi 1 ili 2"<<endl;

     }

     return 0;

}

 

Provjera za unos vrijednosti 2 i 4 te odabir paralelnog spoja:

 

Otpor R1 (u omima): 200

Otpor R2 (u omima): 400

Za spoj otpora u seriju upisi 1, a za paralelu 2: 2

Ako se otpori od 200 oma i 400 oma spoje u paralelu, ukupni je otpor 133.333 oma.