Poznaj C++ w$ godziny0069

Poznaj C++ w$ godziny0069



54 Godzina 4

Kolejność wykonywania operatorów logicznych

Operatory relacji oraz operatory, jako wyrażenia C++, zwracają 1 (gdy wyrażenie

jest prawdziwe) lub 0 (gdy wyrażenie jest fałszywe). Tak jak wszystkie wyrażenia, wykonywane są one w określonej kolejności. Każdy ma swój priorytet, określający, który operator zostanie uwzględniony jako pierwszy. Fakt ten jest ważny np. przy obliczaniu takiego wyrażenia:

if ( x > 5 S4 y > 5 || z > 5 )

W tym przypadku zamierzeniem programisty mogło być uzyskanie prawdy, gdy zarówno x jak i y jest większe od 5 lub z jest większe od 5. Z drugiej strony można to również interpretować jako prawdę, gdy x jest większe od 5 i jeśli y jest większe od 5 lub z jest większe od 5.

Jeśli x jest równe 3 i y oraz z są równe 10, to pierwsza interpretacja będzie prawdziwa (z jest większe od 5 zatem można pominąć warunek na x i y), natomiast druga będzie fałszywa (nie jest prawdą że x jest większe od 5 zatem nie ma znaczenia, że y i z są większe od 5).

Kolejność wykonywania operatorów można zmienić stosując nawiasy (tak jak w przypadków operatorów matematycznych).

if (    ( x > 5 ) && (y>5 || z>5)    )

Jeśli podstawimy podane wyżej wartość, to uzyskamy wyrażenie fałszywe. Nie jest prawdą że x jest większe od 5, zatem lewa strona wyrażenia && jest fałszywa, z czego wynika, że całe wyrażenie jest fałszywe.


Warto jest wykorzystywać nawiasy dla określenia kolejności wykonywania operatorów logicznych. Pamiętaj, że sztuką jest napisanie takiego programu, który jednocześnie jest zrozumiały i prawidłowo działa.


Więcej o prawdzie i fałszu

W C++ wartość 0 traktowana jest jako fałsz, natomiast każda inna wartość jako prawda. Wielu programistów wykorzystuje tę zaletę w instrukcjach if. Np. instrukcja:

if (x)    // jeśli x jest prawdziwe (różne od zera)

x = 0;

Można tę instrukcję przeczytać tak: „Jeśli x jest różne od zera to podstaw zero pod x”

Jest to trochę oszustwo, czytelniej byłoby tak:

Kolejność wykonywania operatorów logicznych

Operatory relacji oraz operatory, jako wyrażenia C++, zwracają 1 (gdy wyrażenie jest prawdziwe) lub 0 (gdy wyrażenie jest fałszywe). Tak jak wszystkie wyrażenia, wykonywane są one w określonej kolejności. Każdy ma swój priorytet, określający, który operator zostanie uwzględniony jako pierwszy. Fakt ten jest ważny np. przy obliczaniu takiego wyrażenia:

if ( x > 5 H y > 5 II z > 5 )

W tym przypadku zamierzeniem programisty mogło być uzyskanie prawdy, gdy zarówno x jak i y jest większe od 5 lub z jest większe od 5. Z drugiej strony można to również interpretować jako prawdę, gdy x jest większe od 5 i jeśli y jest większe od 5 lub z jest większe od 5.

Jeśli x jest równe 3 i y oraz z są równe 10, to pierwsza interpretacja będzie prawdziwa (z jest większe od 5 zatem można pominąć warunek na x i y), natomiast druga będzie fałszywa (nie jest prawdą, że x jest większe od 5 zatem nie ma znaczenia, że y i z są większe od 5).

Kolejność wykonywania operatorów można zmienić stosując nawiasy (tak jak w przypadków operatorów matematycznych).

if (    (x>5)S&(y>5||z>5)    )

Jeśli podstawimy podane wyżej wartość, to uzyskamy wyrażenie fałszywe. Nie jest prawdą, że x jest większe od 5, zatem lewa strona wyrażenia && jest fałszywa, z czego wynika, że całe wyrażenie jest fałszywe.


Warto jest wykorzystywać nawiasy dla określenia kolejności wykonywania operatorów logicznych. Pamiętaj, że sztuką jest napisanie takiego programu, który jednocześnie jest zrozumiały i prawidłowo działa.


Więcej o prawdzie i fałszu

W C++ wartość 0 traktowana jest jako fałsz, natomiast każda inna wartość jako prawda. Wielu programistów wykorzystuje tę zaletę w instrukcjach if. Np. instrukcja:

if (x)    // jeśli x jest prawdziwe (różne od zera)

x = 0;

Można tę instrukcję przeczytać tak: „Jeśli x jest różne od zera to podstaw zero pod x" Jest to trochę oszustwo, czytelniej byłoby tak:


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0144 Wskaźniki 133 Operator dostępu pośredniego ( * ) jest używany w dwóch różn
Poznaj C++ w$ godziny0068 Instrukcje i wyrażenia 53 Tabela 4.2. Operatory logiczne Operator Symbol
Poznaj C++ w$ godziny0011 X Poznaj C++ w 24 godziny Ograniczenia przy przeciążaniu operatorów
Poznaj C++ w$ godziny0026 10 Godzina 1 Oto kolejne fazy postępowania przy tworzeniu programu wykonyw
Poznaj C++ w$ godziny0052 Godzina 4Instrukcje i wyrażenia Program to zbiór instrukcji wykonywanych s
Poznaj C++ w$ godziny0061 46 Godzina 4Operatory relacji Operatory relacji są używane do określenia,
Poznaj C++ w$ godziny0132 120 Godzina 8 120 Godzina 8 ANALIZA: W linii 8, w instrukcji for wykonywan
Poznaj C++ w$ godziny0179 168 Godzina 12 Występuje tutaj jeszcze jeden, dodatkowy koszt. Każda kopia
Poznaj C++ w$ godziny0196 Zaawansowane funkcje 187 53:    } 54:    cou
Poznaj C++ w$ godziny0202 Zaawansowane funkcje 193 W liniach 53 i 54 wypisywany jest wiek obydwu KOT
Poznaj C++ w$ godziny0204 Przeciążanie operatorów W poprzednim rozdziale nauczyłeś się przeciążać me
Poznaj C++ w$ godziny0206 197Przeciążanie operatorów Listing 14.2. Przeciążenie operatora
Poznaj C++ w$ godziny0207 198 Godzina 14 198 Godzina 14 ANALIZA: Implementacja operatora ++, zawarta
Poznaj C++ w$ godziny0208 Przeciążanie operatorów 199Listing 14.3. Operator przedrostkowy i
Poznaj C++ w$ godziny0210 Przeciążanie operatorów 201 Przeciążanie operatorów
Poznaj C++ w$ godziny0211 202 Godzina 14Listing 14.5. Operator
Poznaj C++ w$ godziny0212 Przeciążanie operatorów 203 ITrzy = 1Jeden + lDwa; niż ITrzy - 1Jeden.Doda
Poznaj C++ w$ godziny0216 Przeciążanie operatorów 207 EFEKT DZIAŁANIA: Compile error! Unable to conv
Poznaj C++ w$ godziny0218 Przeciążanie operatorów 209 23:    {} 24: 25:

więcej podobnych podstron