Lekcja8. Instrukcja warunkowa w C++
Instrukcja warunkowa to element kodu programu, bez którego nie napiszemy żadnego większego programu. Występuje powszechnie dla rozwiązania problemu z wyborem w różnych sytuacjach czyli w podejmowaniu decyzji.
Możliwości podejmowania decyzji w programie komputerowym zazwyczaj są bardzo ograniczone, więc zawężają się do wykonania tylko i wyłącznie instrukcji, które wprowadzimy w kodzie programu.
Najprostsza postać składni instrukcji warunkowej wygląda następująco:
if (warunek)
instrukcja(polecenie)
Z czasem przejdziemy do trudniejszych postaci tej instrukcji ale najpierw skoncentrujmy się na przykładzie:
if (a==b)
cout << ”a i b są sobie równe”<< endl;
Jeżeli a i b mają te same wartości to są sobie równe. Nie ma innej możliwości.
Nieco trudniejsza postać instrukcji warunkowej to:
if (warunek) instrukcja1;
else
instrukcja2;
Jeżeli spełniony zostanie warunek to zostanie wykonana instrukcja nr 1, natomiast w innym przypadku zostanie wykonana instrukcja nr2.
Przykład:
if ( a==b )
cout << ”a i b są sobie równe”<< endl;
else
cout << „”a i b nie są sobie równe” << endl;
W języku C++ istnieje pojęcie instrukcji złożonej, która przyjmuje postać:
if ( a==b ) {
cout << ”a i b są sobie równe”<< endl;
} else {
cout << „”a i b nie są sobie równe” << endl;
}
Operator przypisania i równości
W języku C++ operator przypisania można łatwo pomylić z operatorem równości:
Operator przypisania to: = Operator równości to: ==
Przykład zastosowania instrukcji warunkowej w prostym programie.
Program ma za zadanie pobranie liczby z klawiatury wprowadzonej przez użytkownika i określić czy wprowadzona liczba jest parzysta czy też nie.
#include <iostream>
using namespace std;
int main() { int liczba, reszta;
cout << "Podaj dowolną liczbę całkowitą i naciśnij klawisz Enter: ";
cin >> liczba;
// Oblicz resztę z dzielenia przez 2.
reszta = liczba % 2;
// Jeżeli reszta jest równa 0, wprowadzona liczba jest parzysta.
if (reszta == 0)
cout << "Liczba jest parzysta.";
else
cout << "Liczba jest nieparzysta.";
system("PAUSE");
return EXIT_SUCCESS;
}
Najpierw deklarujemy sobie dwie zmienne n i resztę o typie integer, czyli typie liczb całkowitych.
Następnie wyprowadzamy komunikat na ekran z prośbą o wprowadzenie dowolnej liczby całkowitej.
Następnie wprowadzamy liczbę do pamięci komputera. Aby sprawdzić czy liczba jest parzysta czy nieparzysta wiemy z matematyki, że wystarczy ją podzielić przez dwa i po reszcie z dzielenia dowiemy się że jeżeli reszta wynosi 0 to liczba jest parzysta czyli można ją podzielić przez 2. Każda inna liczba jest nieparzysta. Wyrażenie:
reszta=liczba %2
dzieli wprowadzoną przez użytkownika liczbę przez dwa i pokazuje resztę.
Wynik dzielenia jest umieszczany w zmiennej reszta w zapisie:
reszta = liczba % 2;
Znak % oznacza w C++ określa dzielenie z resztą.
Szybszym rozwiązaniem naszego zadania będzie następujący kod:
#include <iostream>
using namespace std;
int main() { int liczba, reszta;
cout << "Podaj dowolną liczbę całkowitą i naciśnij klawisz Enter: ";
cin >> liczba;
if (liczba % 2 == 0)
cout << "Liczba jest parzysta.";
else
cout << "Liczba jest nieparzysta.";
system("PAUSE");
return EXIT_SUCCESS;
}
Różnica polega na przyrównaniu reszty z dzielenia wprowadzanej liczby do zera i tak jeżeli niema reszty z dzielenia czyli wynosi ona 0 to liczba jest parzysta, w innym przypadku liczba jest nieparzysta.
Marek Pauli