[lekcja 13] Instrukcja warunkowa if else Kurs C++ » Poziom 1

background image

Strona 1

[lekcja] Instrukcja warunkowa if ... else | Kurs C++ » Poziom 1

2011-11-12 15:36:51

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Instrukcja-warunkowa-if-else/16

Darmowe kursy Online

»

Kurs C++

»

Poziom 1

Autor: Piotr Szawdyński

Instrukcja warunkowa if ... else

[lekcja]

Rozdział 13. Sterowanie przebiegiem programu za pomocą instrukcji warunkowej

if ... else

.

Nareszcie za nami podstawy podstaw. Teraz można zabrać się za tłumaczenie poważniejszych zagadnień związanych już bezpośrednio z

programowaniem. Pragę w tym miejscu po raz kolejny podkreślić, że cała wiedza, która do tej pory została omówiona jest niezbędna

do kontynuowania nauki programowania. Wróć do poprzednich rozdziałów jeśli czegoś nie rozumiałeś, bo zarówno ten jak i każdy

kolejny rozdział będzie zakładał, że rozumiesz w stu procentach to co było.

No to zaczynamy

Skoro dotarłeś do tego miejsca i czytasz ten tekst dalej to znaczy, że wszystko zrozumiałeś co do tej pory było... i bardzo dobrze. Dzięki

temu będzie Ci dużo łatwiej zrozumieć nowe rzeczy, a ja nie będę musiał tłumaczyć kilku zagadnień jednocześnie. W tym rozdziale

zajmiemy się instrukcją warunkową. Zanim jednak przejdziemy do właściwej części rozdziału zastanówmy się przez chwilę jak wygląda

podejmowanie decyzji przez nas samych.

Intuicja i podejmowaniedecyzji

Jeśli zaczniemy zastanawiać się nad naszym życiem dojdziemy do wniosku, że w życiu stale podejmujemy jakieś decyzje. Jedne są

lepsze, inne gorsze jednak zawsze wybieramy jakąś drogę. Zdecydowaną większość decyzji podejmujemy jednak intuicyjnie, czyli w

zależności od humoru jaki mamy w danej chwili czy też pogody jaka na chwilę obecną jest. Takie spontaniczne podejście do życia w

przypadku człowieka jest naturalne i wpisane w jego naturę. Pomimo, iż komputer również stale podejmuje jakieś decyzje to wygląda to

nieco inaczej, niż w przypadku człowieka. Komputer postępuje zgodnie z tym, co mu napiszemy. Nie ma własnej woli, nie ma intuicji - to

tylko maszyna. Wszystko więc musi być precyzyjnie sformułowane. Jeśli by tak nie było, komputer stałby się nieprzewidywalny , a co za

tym idzie bezużyteczny jako narzędzie. Sztuką programowania jest umiejętność zapisywania swoich rozbieganych myśli w sposób

formalny i poprawny z punktu widzenia logiki za pomocą języka programowania. Niniejszy rozdział pokaże nam jak zapisuje się formalnie

decyzje, jakie ma podejmować komputer w naszym programie.

Składnia warunku if

Zapis instrukcji warunkowej wygląda następująco:

if

(...)...

Umieszczamywyrażenielogiczne

Wartość, którą umieszczamy w nawiasach zaokrąglonych to wyrażenie logiczne. Wyrażenia logiczne zapisywaliśmy do tej pory do

zmiennych i wyglądało to tak:

C/C++

int

wiek

=

30

;

bool

wyrazenieLogiczne

=

wiek

>

100

||

wiek

<

2

;

Powyższe wyrażenie możemy wstawić do instrukcji warunkowej na dwa sposoby. Pierwszym z nich jest użycie zmiennej, tj:

C/C++

if

(

wyrazenieLogiczne

==

true

)...

//powy

ż

szy zapis jest równowa

ż

ny poni

ż

szemu:

if

(

wyrazenieLogiczne

)...

Drugą możliwością, jaką mamy to wstawienie wyrażenia logicznego bezpośrednio w instrukcję warunkową, czyli:

C/C++

if

(

wiek

>

100

||

wiek

<

2

)...

Z praktycznego punktu widzenia znacznie częściej korzysta się z drugiego zapisu, ponieważ nie trzeba tworzyć dodatkowej tymczasowej

zmiennej, która prawdopodobnie i tak nie była by nam potrzebna nigdzie więcej .

Kiedy instrukcja warunkowazwraca prawdę

Instrukcja warunkowa zwraca prawdę wtedy gdy wartość wyrażenia logicznego, umieszczonego w nawiasach zaokrąglonych jest

prawdziwa. Wartość wyrażenia logicznego jest prawdziwa wtedy, gdy jest ona różna od zera.

Instrukcjalub blok instrukcji

background image

Strona 2

[lekcja] Instrukcja warunkowa if ... else | Kurs C++ » Poziom 1

2011-11-12 15:36:51

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Instrukcja-warunkowa-if-else/16

Jeśli piszemy już jakiś warunek to zazwyczaj chcemy, aby w zależności od niego coś się wykonało. Pierwsza instrukcja, która wystąpi po

nawiasie zamykającym wyrażenie logiczne będzie tą, która wykona się jeśli warunek będzie spełniony. Jeśli warunek nie będzie spełniony

instrukcja ta zostanie przeskoczona. Przykład:

C/C++

#include <iostream>

int

main

()

{

int

wiek

;

std

::

cin

>>

wiek

;

if

(

wiek

>=

18

)

std

::

cout

<<

"Twierdzisz, ze jestes pelnoletni :)"

<<

std

::

endl

;

std

::

cout

<<

"Koniec"

<<

std

::

endl

;

return

0

;

}

Pisząc własne programy będziesz jednak natrafiał na sytuacje, w których będziesz chciał napisać więcej niż jedną instrukcję po spełnieniu

warunku. W tym przypadku będziesz musiał użyć bloku instrukcji, który tworzymy za pomocą klamer { }. Przykład demonstrujący użycie

bloku instrukcji:

C/C++

#include <iostream>

int

main

()

{

int

wiek

;

std

::

cin

>>

wiek

;

if

(

wiek

>=

18

)

{

std

::

cout

<<

"Twierdzisz, ze jestes pelnoletni..."

<<

std

::

endl

;

std

::

cout

<<

"ale czy to kogos interesuje? :)"

<<

std

::

endl

;

}

std

::

cout

<<

"Koniec"

<<

std

::

endl

;

return

0

;

}

Ilość instrukcji jaką możemy umieścić w bloku nie jest ograniczona w żaden sposób.

Zagnieżdżaniewarunków

Ucząc się programowania dobrze wiedzieć od samego początku, że warunki możemy zagnieżdżać. Zasady używania i działania warunków

pozostają te same. Przykład:

C/C++

#include <iostream>

int

main

()

{

int

liczba

;

std

::

cin

>>

liczba

;

if

(

liczba

>=

10

)

{

std

::

cout

<<

"Liczba jest >= 10"

<<

std

::

endl

;

if

(

liczba

>=

50

)

{

std

::

cout

<<

"Liczba jest >= 50"

<<

std

::

endl

;

if

(

liczba

<=

100

)

std

::

cout

<<

"Liczba jest <= 100"

<<

std

::

endl

;

}

}

std

::

cout

<<

"Koniec"

<<

std

::

endl

;

return

0

;

}

Słowo kluczowe else

Do tej pory poznaliśmy instrukcję warunkową if w jej podstawowej wersji. Jej funkcjonalność możemy rozszerzyć za pomocą słowa

kluczowego else. Słowo kluczowe else oznacza "w przeciwnym wypadku", czyli jeśli warunek nie zostanie spełniony, wykonaj inny kod.

Ogólny zapis instrukcji warunkowej, wykorzystujący słowo kluczowe else będzie więc wyglądał tak:

if

(...)...

else

...

Jedyną niewiadomą w tym zapisie są ostatnie trzy kropki. Oznaczają one instrukcję/blok instrukcji, który ma się

wykonać jeśli warunek nie zostanie spełniony. Poniżej zamieszczam prosty przykład demonstrujący działanie instrukcji warunkowej if ...

else:

C/C++

#include <iostream>

int

main

()

background image

Strona 3

[lekcja] Instrukcja warunkowa if ... else | Kurs C++ » Poziom 1

2011-11-12 15:36:51

http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Instrukcja-warunkowa-if-else/16

Architektserwisu: Piotr Szawdyński

© Wszelkieprawa zastrzeżone2005-2011

{

int

wiek

;

std

::

cin

>>

wiek

;

if

(

wiek

>=

18

)

std

::

cout

<<

"Jestes pelnoletni."

<<

std

::

endl

;

else

std

::

cout

<<

"Nie jestes pelnoletni."

<<

std

::

endl

;

std

::

cout

<<

"Koniec"

<<

std

::

endl

;

return

0

;

}

Zasady odnośnie jednej instrukcji lub wielu w bloku else są takie same jak za pierwszym razem. Jedną instrukcję możemy zastąpić

blokiem { }.

Praca domowa

1. Przeanalizuj działanie poniższego programu i odpowiedz sobie jaki będzie jego wynik działania:

C/C++

#include <iostream>

int

main

()

{

int

wiek

;

std

::

cin

>>

wiek

;

if

(

wiek

>=

18

)

if

(

wiek

<=

100

)

{

std

::

cout

<<

"Twierdzisz, ze jestes pelnoletni..."

<<

std

::

endl

;

std

::

cout

<<

"ale czy to kogos interesuje? :)"

<<

std

::

endl

;

}

std

::

cout

<<

"Koniec"

<<

std

::

endl

;

return

0

;

}

2. Napisz powyższy program tak, aby występowała w nim instrukcja warunkowa tylko raz. Program ma działać tak samo jak jego

pierwotna wersja.

3. Usuń błędy z poniższego programu:

C/C++

#include <iostream>

int

main

()

{

int

wiek

;

std

::

cin

>>

wiek

;

if

(

wiek

<

18

)

;

std

::

cout

<<

"Nie jestes pelnoletni"

<<

std

::

endl

else

;

std

::

cout

<<

"Jestes pelnoletni"

<<

std

::

endl

std

::

cout

<<

"Koniec"

<<

std

::

endl

;

return

0

;

}

Wszystkieteksty są chronioneprawami autorskimi. Kopiowanielub rozpowszechnianietreści poza niniejszymserwisem jest

zabronione.

Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechnianiawłasnego tekstu wedle własnego uznania.


Wyszukiwarka

Podobne podstrony:
[lekcja 20] Funkcje, a słowo kluczowe return Kurs C++ » Poziom 2
VBAmat2, INSTRUKCJA WARUNKOWA IF
Instrukcja warunkowa If zadania
1 Instrukcja wyboru if else, obsługa wyjątków (materiały ITA 104)id 9293
[lekcja 8] Pojęcie zmiennej i podstawowe typy danych Kurs C++ » Poziom 1
[lekcja 20] Funkcje, a słowo kluczowe return Kurs C++ » Poziom 2
[lekcja 11] Operacje porównania Kurs C++ » Poziom 1
[lekcja 12] Operacje logiczne Kurs C++ » Poziom 1
[lekcja 15] Pętla do while Kurs C++ » Poziom 2
[lekcja 17] Funkcje pierwsze starcie Kurs C++ » Poziom 2
[lekcja 16] Pseudolosowe liczby całkowite Kurs C++ » Poziom 2
[lekcja 7] Przestrzeń nazw std Kurs C++ » Poziom 1
[lekcja 2] Podstawy programowania teoria i terminologia Kurs C++ » Poziom 1
[lekcja 21] Losowanie bez powtórzeń Kurs C++ » Poziom 2
[lekcja 19] Przekazywanie tablic jednowymiarowych do funkcji Kurs C++ » Poziom 2
[lekcja 4] Podstawy programowania w C++ Kurs C++ » Poziom 1

więcej podobnych podstron