Autor: Faradaj
Wiemy już, co to są zmienne, więc
czas się wziąć za sposoby za pomocą, których komputer będzie reagował na
wprowadzane przez nas dane zamiast tylko powtarzać je lub edytować wg jednej
reguły.
Do tego właśnie służą instrukcje warunkowe. Są to jedne z najbardziej intuicyjnych spraw
w cpp.
Zacznijmy od krótkiego przykładu prostego programu:
Program prosi nas o padanie liczby, a następnie odpowiada,
czy liczba jest 1 czy nie.
I właśnie tu widzimy, czym jest instrukcja warunkowa.
I właśnie tu widzimy, czym jest instrukcja warunkowa.
Instrukcje warunkowe w cpp przybierają następującą formę:
if(warunek)
{
{
//polecenia jeśli warunek jest spełniony
}
else
{
else
{
// polecenia w przeciwnym wypadku
}
Więc w naszym przypadku program będzie wyglądał tak:
Zapewne, wiele osób zwróci uwagę, czemu są dwa znaki równa
się ;) Już tłumaczę. W języku cpp pojedynczy znak równa się jest zarezerwowany
dla operacji przypisania (np. int i=0; Tworzę zmienną i, której przypisuję
wartość 0), podczas gdy dwa znaki równa się znaczą ma równą wartość. Operatory
porównania w C++:
Operator
|
Znaczenie
|
==
|
Jest sobie równe
|
>
|
Jest większe niż
|
<
|
Jest mniejsze niż
|
!=
|
Jest różne od
|
Zrobiliśmy –więc- program, który ma jeden warunek. Nasuwa
się teraz pytanie, jak dodać więcej warunków. Logicznie rzecz ujmując, skoro if
znaczy jeżeli a else w przeciwnym razie, można stworzyć operator else if() i
rzeczywiście można. Poniżej można zobaczyć,
standardowy szablon, jak korzystać z wielu instrukcji warunkowych:
Warto pamiętać, że cpp jest bardzo przyjaznym językiem i
zawsze stara się zrozumieć nadawcę poleceń, dlatego wychodzi do nas z bardzo
kuszącą ofertą:
W przypadku, gdy warunek jest spełniony i chcemy wykonać
tylko jedno polecenie np. coutować jedynkę ;), możemy opuścić klamry, tzn.
napisać:
if(liczba==1)
cout<<”jeden”;
cout<<”jeden”;
Udogodnienie działa również dla else, else if i wielu innych
poleceń, których wkrótce się nauczymy. To:
else if(liczba==2)
cout<<”dwojka”;
else
cout<<”nie jeden nie dwa”;
else if(liczba==2)
cout<<”dwojka”;
else
cout<<”nie jeden nie dwa”;
Znaczy to samo co to:
else
if(liczba==2)
{
cout<<”dwojka”;
}
else
{
{
cout<<”dwojka”;
}
else
{
cout<<”nie jeden nie dwa”;
}
Warto jednak wiedzieć jeszcze jedną rzecz. Co jeśli mamy więcej niż jeden warunek do umieszczenia w ifie? Nic trudniejszego możemy to zrobić za pomocą specjalnych operatorów:
}
Warto jednak wiedzieć jeszcze jedną rzecz. Co jeśli mamy więcej niż jeden warunek do umieszczenia w ifie? Nic trudniejszego możemy to zrobić za pomocą specjalnych operatorów:
Operator
|
Użycie
|
Znaczenie
|
&&
|
if(a>2&&a<7 o:p="">7>
|
Jeżeli a większe od dwóch ORAZ mniejsze od 7. Tylko gdy oba warunki
są spełnione.
||
if(a>7||a<4 o:p="">4>
Jeżeli a większe od siedmiu LUB mniejsze od 4. Jeśli spełniony choć
jeden warunek.
Ogarniamy już ify i elsy, więc przejdźmy do kolejnych
poleceń warunkowych, których możliwość użycia daje na cpp – a mianowicie do
instrukcji switch(wybór). Jego składnia wygląda następująco:
W wykorzystaniu zamiast wybor wstawia się nazwę wcześniej
utworzonej i podanej zmiennej dowolnego typu. A więc nasz poprzedni program
mógłby wyglądać tak:
Widzimy przy okazji wadę tego rozwiązania. Możemy utworzyć
mnóstwo wyborów, ale nie ma przeciwnego wypadku. Tak samo można wykorzystywać
zamiast liczb: znaki czy wyrazy. Np. mini kalkulator na caseach:
#include
#include
using namespace std;
int main()
{
int liczba,liczba2;
float wynik=0;
char znak;
cin>>liczba;
cin>>znak;
cin>>liczba2;
switch(znak)
{
case '+':
wynik=liczba+liczba2;
break;
case '-':
wynik=liczba-liczba2;
break;
case 'x':
wynik=liczba*liczba2;
break;
case '*':
wynik=liczba*liczba2;
break;
case '/':
wynik=liczba/liczba2;
break;
case ':':
wynik=liczba/liczba2;
break;
}
cout<<" = "<
getchar();
return 0;
}
Zwracajmy
zawsze uwagę czy po case daliśmy apostrofy, cudzysłowy czy nic w zależności od
typu zmiennej. Przypomnienie: zmienne liczbowe – nic , łańcuchy znaków –cudzysłowy,
pojedyncze znaki apostrofy. Uczniowie często zapominają o tym, a następnie
doszukują się błędów. Unikajmy tego.
Zadanie:
1.
Napisz kalkulator, w którym znak mnożenia jest
zastąpiony wyrazem: razy, znak dzielenia: przez, znak dodawania: plus, znak
odejmowania: minus, znak potęgowania do.
2.
Napisz program, który sprawdzi: czy dana liczba
jest parzysta, nieparzysta, podzielna przez 3 i większa od 21.
3.
Napisz program, w którym sprawdzisz która liczba
jest większa i podasz odpowiedź: pierwsza lub druga.
Brak komentarzy:
Prześlij komentarz