Operatory logiczne — część 2
Część sekcji Podstawy ścieżki C w Coddy. Lekcja 22 z 63.
Operatory logiczne mają specjalną tabelę zwaną „tabelą prawdy”, która pokazuje, jaki wynik zwraca kombinacja operatorów logicznych.
Tablica prawdy dla operatora and (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Jedynym sposobem na uzyskanie 1 (prawdy) dla operatora and (&&) jest sytuacja, gdy zarówno a, jak i b mają wartość 1 (prawdy)
Tablica prawdy dla operatora or (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
W tym przypadku, aby uzyskać wynik 1 (prawda), albo a, albo b powinno mieć wartość 1 (prawda).
Tablica prawdy dla operatora not (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Tutaj wartość a jest odwrócona. Jeśli a ma wartość 0 (false), to !a ma wartość 1 (true)
Wyzwanie
ŁatwyMusisz przypisać zmiennym b1 i b2 wartości całkowite tak, aby b3 przyjmowało wartość 1 (prawda) w wyrażeniu: int b3 = !((b1 + b2) > (b1 * b2));
Poświęć chwilę na przeanalizowanie warunku i zastanów się, jakie wartości sprawią, że będzie on prawdziwy.
Spróbuj swoich sił
#include <stdio.h>
int main() {
// Wpisz swój kod poniżej
int b1 = ?;
int b2 = ?;
int b3 = !((b1 + b2) > (b1 * b2));
// Nie zmieniaj poniższej linijki
printf("b3 = %d\n", b3);
return 0;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
2Zmienne
Typy danychLiczby całkowiteLiczby zmiennoprzecinkowe — float i doubleZnakiWartości logiczneStałePodstawy printfZasady nazewnictwa zmiennychKonwersja typów — część 1Konwersja typów — część 2Wyzwanie podsumowujące3Operatory
Operatory arytmetyczneOperator moduloInkrementacja/dekrementacjaOperatory przypisaniaOperatory relacyjneOperatory logiczne — część 1Operatory logiczne — część 2Operatory logiczne — część 3Wyzwanie podsumowującePoćwicz samodzielnie: Kompilator C online