Podejmowanie decyzji w programie


Sposoby podejmowania decyzji w C++

Do podejmowania decyzji w języku C++ służy instrukcja warunkowa if. Oprócz tej instrukcji istnieją jeszcze 2 inne mechanizmy, które również pozwalają na dokonywanie decyzji w sposób często identyczny jak instrukcja warunkowa if. Należą do nich instrukcja switch(), która będzie wyjaśnona w kolejnych lekcjach oraz operator warunkowy oznaczany znakiem ?

Proszę zwrócić uwagę na poprawne nazewnictwo, ? to jest operator warunkowy a nie instrukcja warunkowa. Jedyną instrukcją warunkową w języku C++ jest instrukcja if.



Schematyczna postać operatora warunkowego wygląda następująco:

wyrazenie1 ? wyrazenie2 : wyrazenie3;
Najpierw jest sprawdzane czy wyrazenie1 jest prawdziwe czy nie. Jeśli jest ono prawdziwe, to obliczana jest wartość wyrazenie2 i jest ona zwracana. Jeśli natomiast wyrazenie1 było fałszywe, to obliczana jest wartość wyrazenie3 i ta wartość jest zwracana.

To, że wartość jest zwracana oznacza, że wynik operacji może zostać przypisany do jakiejś zmiennej, czyli przykładowo możemy napisać tak:

zmienna = wyrazenie1 ? wyrazenie2 : wyrazenie3;


W takiej sytuacji, jeśli wyrazenie1 będzie prawdą to zmienna będzie miała wartość wyrazenie2, natomiast jeśli wyrazenie1 będzie fałszywe, to zmienna będzie miała wartość wyrazenie3.

W rzeczywistości najczęściej w ten właśnie sposób jest wykorzystywany operator warunkowy - wynik działania jest przypisywany do jakiejś konkretnej zmiennej.

Przykłady


  1. // Kod 1 z użyciem operatora warunkowego:
  2.  
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int a=3, b=2;
  10. (a<b) ? cout <<"a jest mniejsze" : cout <<"b jest mniejsze";
  11.  
  12. cout <<endl<<"Nacisnij ENTER aby zakonczyc..."<<endl;
  13. return 0;
  14. }
  1. //Kod 1 z użyciem instrukcji warunkowej if:
  2.  
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int a=3, b=2;
  10. if (a<b)
  11. cout <<"a jest mniejsze";
  12. else
  13. cout <<"b jest mniejsze";
  14.  
  15. cout <<endl<<"Nacisnij ENTER aby zakonczyc..."<<endl;
  16. return 0;
  17. }
  18.  

Zwróćmy uwagę, że oba programy działają oczywiście tak samo. Ponadto zauważmy, że w pierwszym programie po pierwszej instrukcji wypisania komunikatu na ekran nie ma średnika (nie może go tam być).

Operator warunkowy - podsumowanie

Jak udało Ci się zauważyć, za pomocą operatora warunkowego można często osiągnąć te same rezultaty, co za pomocą instrukcji warunkowej if. To, czy zdecydujesz się używać operatora warunkowego, zależy tylko od Ciebie. Nawet jeśli się na to zdecydujesz, to i tak używanie instrukcji warunkowej if będzie dla Ciebie koniecznością.

Zadanie 1


Zadanie 2



Wróć do spisu tematów