JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 3 Instrukcje wyboru 1
INSTRUKCJE WYBORU Instrukcje sterujące to takie instrukcje, które sterują przebiegiem programu w zależności od spełnienia (bądź nie) jakiegoś warunku. Decyzje podejmowane są zależnie od tego, czy dany warunek jest spełniony (wartością wyrażenia jest prawda), czy też nie jest spełniony (wartością wyrażenia jest fałsz). W C++: wartość ZERO odpowiada stanowi FAŁSZ wartość INNA NIŻ ZERO odpowiada stanowi PRAWDA Do instrukcji sterujących zaliczamy m. in. instrukcje wyboru: instrukcja warunkowa if lub if else instrukcja wielokrotnego wyboru switch 2
INSTRUKCJE WYBORU - if Instrukcja warunkowa if: lub: if(warunek)instrukcja; if(warunek) instrukcja_1; instrukcja_2; Jeżeli warunek jest spełniony (jego wartość jest różna od zera), to wykonywana jest instrukcja lub blok instrukcji (ciąg instrukcji ograniczonych nawiasami klamrowymi). 3
INSTRUKCJE WYBORU if else Instrukcja warunkowa if else: if(warunek)instrukcja_1; else instrukcja_2; Jeżeli warunek jest spełniony, to wykonywana jest instrukcja lub blok instrukcji występujących po słowie if. Jeżeli warunek nie jest spełniony, to wykonywana jest instrukcja lub blok instrukcji występujących po słowie else. 4
INSTRUKCJE WYBORU if else Przykład: #include <iostream> using namespace std; int main() int a ; cout<<"wpisz prosze 5"<<endl; cin>>a; if (a==5) //if(!(a-5)) //albo tak: wartoscia (zm-5) jest 0 (falsz) //lub inna liczba (prawda) cout <<"To prawda, ze wpisales 5"<<endl; cout<<"dziekuje za wspolprace"<<endl; else cout<<"wpisales inna liczbe!"<<endl; cout<<"chyba sie nie rozumiemy..."<<endl; return 0; 5
INSTRUKCJE WYBORU if else if else, wybór wielowariantowy: if(warunek_1)instrukcja_1; else if(warunek_2) instrukcja_2; else if(warunek_3) instrukcja_3; else instrukcja_n; 6
INSTRUKCJE WYBORU if else Przykład: #include <iostream> using namespace std; int main() int temperatura ; cout<<"podaj, jaka jest dzis temperatura w stopniach"<<endl; cin>>temperatura; if (temperatura>30) cout<<"upalnie"; else if (temperatura>20) cout<<"przyjemnie cieplo"; else if (temperatura>10) cout<<"moze byc Ci chlodno"; else if (temperatura>=0) cout<<"dosc chlodno"; else cout<<"temperatura jest ujemna!"; return 0; 7
INSTRUKCJE WYBORU if else if else, zagnieżdżanie: if(warunek1) if(warunek2) instrukcja_1; instrukcja_2; else instrukcja_n Jeżeli nawiasy klamrowe nie określają inaczej, to else odnosi się do najbliższego if. 8
INSTRUKCJE WYBORU if else Przykład: #include <iostream> using namespace std; int main() int a ; cout<<"wpisz dowolna liczbe calkowita"<<endl; cin>>a; if (a) //jeżeli a nie jest zerem if (a>0) cout <<"Wpisales liczbe dodatnia"<<endl; else cout<<"wpisales liczbe ujemna"<<endl; else cout<<"wpisales zero"<<endl; return 0; 9
INSTRUKCJE WYBORU switch Instrukcja wielokrotnego wyboru switch: switch(wyrażenie_warunkowe) case wyrażenie_stałe_1 instrukcja_1; break; //break jest opcjonalne case wyrażenie_stałe_2 instrukcja_2; instrukcja_3; break; default //gdy żadne wyrażenie stałe nie //jest prawdziwe (opcjonalne) instrukcja_n; 10
INSTRUKCJE WYBORU switch Przykład: #include <iostream> using namespace std; int main() int karta; cout<<"zagrajmy w trzy karty.\n"; cout<<"podaj numer karty do odsloniecia:"<<endl; cin>>karta; switch(karta) case 1: cout<<"pierwsza karta odslonieta."; break; case 2: cout<<"druga karta odslonieta."; break; case 3: cout<<"trzecia karta odslonieta."; break; default: cout<<"nie ma takiej karty..."; return 0; 11
INSTRUKCJE WYBORU switch Przykład: #include <iostream> using namespace std; int main() char odpowiedz; int T_zlicz=0,N_zlicz=0; cout<<"odpowiedz T lub N (tak lub nie)"<<endl; cin>>odpowiedz; switch(odpowiedz) case 'T': case 't': //zauwaz, ze po case 'T' nie bylo break... cout<<"odpowiedziales twierdzaco"<<endl; ++T_zlicz; break; //wyjscie ze switch case 'N': case 'n': cout<<"odpowiedziales przeczaco"<<endl; ++N_zlicz; break; //wyjscie ze switch default: cout<<"nie odpowiedziales prawidlowo..."<<endl; //switch return 0; 12
INSTRUKCJE WYBORU switch vs. if else (czyli: co wybrać ) Obiekt wybierający co to?: a) switch(obiekt_wybierający) b) if(obiekt_wybierający==wyrażenie) Wybór: 1. Ze względu na obiekt wybierający: a) dla switch musi być to obiekt lub wyrażenie całkowite; b) dla if else typ obiektu wybierającego nie ma znaczenia. 13
INSTRUKCJE WYBORU 2. Ze względu na to, z czym porównywany jest obiekt wybierający: a) dla switch obiekt wybierający jest porównywany ze stałymi wartościami całkowitymi znanymi w momencie pisania programu; b) dla if else obiekt wybierający można porównać z wyrażeniem, którego wartość jest znana dopiero podczas wykonywania programu. 3. Ze względu na operację porównana: a) dla switch porównanie to sprawdzenie, czy jest spełniona równość; b) dla if else porównanie może być dowolnym operatorem logicznym, dającym w wyniku prawda/fałsz. 14
ZADANIA DO WYKONANIA 15