Główna zawartość
Kurs: Podstawy informatyki - program rozszerzony > Rozdział 3
Lekcja 5: Warunki- Warunkowy z if, else oraz wartościami logicznymi
- Warunkowy z if, else oraz wartościami logicznymi
- Zagnieżdżone warunki
- Zagnieżdżone warunki
- Złożone typy logiczne z operatorami logicznymi
- Złożone typy logiczne z operatorami logicznymi
© 2024 Khan AcademyWarunki użytkowaniapolitykę prywatnościInformacja o plikach cookie
Warunkowy z if, else oraz wartościami logicznymi
Jako ludzie codziennie podejmujemy decyzje, np. co zjemy na obiad, czy będziemy zakładać płaszcz przeciwdeszczowy. Podejmując te decyzje, bierzemy pod uwagę wiele czynników z naszego otoczenia, takich jak zawartość naszej lodówki na obiad, czy pogoda na zewnątrz przy podejmowaniu decyzji o płaszczu przeciwdeszczowym.
Programy komputerowe również podejmują decyzje, używając wyrażeń boolowskich (true/false) wewnątrz warunków (if/else). Dzięki funkcjom warunkowym programy mogą reagować w różny sposób na różne dane wejściowe i parametry.
Prosty warunek
Wyobraźmy sobie, że piszemy program, który pomoże nam zdecydować, w co się ubrać na zewnątrz każdego dnia. Istnieje wiele warunków, które możemy wymyślić w tym programie, ale zacznijmy od prostego przypadku: jeśli temperatura jest równa lub niższa od zera, program powinien nas ostrzec, aby nosić kurtkę zimową.
Oto logika na schemacie blokowym:
Możemy zaprogramować ten przepływ w języku JavaScript za pomocą instrukcji if:
if (temperature < 32) {
println("Wear a snow jacket!");
}
Podzielmy tę składnię. Ogólna struktura każdej instrukcji if wygląda w ten sposób:
if (<condition>) {
<instructions>
}
Różnią się one od siebie warunkami i instrukcjami; tam właśnie dzieje się magia.
Warunek jest wyrażeniem logicznym: wyrażenie, które określa się jako
true
lub false
. Wartości logiczne są kolejnym typem danych w językach programowania i mogą być tylko prawdziwe lub fałszywe. Na przykład, możemy przechowywać wyniki tego wyrażenia logicznego w zmiennej:
var belowFreezing = temperature < 32;
W zależności od aktualnej wartości
temperature
, zmienna belowFreezing
będzie teraz przechowywać albo true
, albo false
.Możemy nawet zastąpić warunek zmienną:
var belowFreezing = temperature < 32;
if (belowFreezing) {
println("Wear a snow jacket!");
}
Jakkolwiek napiszemy kod, warunek musi zostać określony jako
true
lub false
, ponieważ to informuje komputer, czy wykonać instrukcje w nawiasach klamrowych, czy też nie.Instrukcjami może być cokolwiek, co twój program jest w stanie zrobić i mogą one być tak długie, jak to konieczne.
✏️ Spróbuj zmienić wartość
temperature
w poniższym programie i zobacz co się stanie. Możesz również zmienić warunek lub instrukcje.Uwaga: zazwyczaj program taki odczytywałby wartość
temperature
z czujnika lub innego przyrządu pomiarowego, ale dla uproszczenia, "hardkodujemy" tę wartość w programie.Operatory porównania
Nasze powyższe wyrażenie logiczne użyło operatora porównania
<=
do określenia, czy jedna liczba jest mniejsza lub równa innej liczbie. Istnieje wiele operatorów porównania w językach programowania do określania różnych zależności pomiędzy wartościami, zwłaszcza liczbami.Oto operatory relacji w języku JavaScript:
Operator | Znaczenie | Wyrażenia, które są prawdziwe | |
---|---|---|---|
> | Większy niż | 60 > 32 | |
>= | Większy lub równy | 60 >= 32 | 32 >= 32 |
< | Mniejszy niż | 20 < 32 | |
<= | Mniejszy lub równy | 20 <= 32 | 32 <= 32 |
=== | Ściśle równy | 32 === 32 | |
== | Równy | 32 == 32 | "32" == 32 |
!== | Ściśle nierówny | 30 !== 32 | "32" !== 32 |
!= | Nierówny | 30 != 32 |
JavaScript jest tutaj trochę nieco trudnym językiem, ponieważ posiada zarówno operatory równości, jak i "ścisłe" operatory równości.
Operatory porównania najpierw starają się wymusić, aby obie strony wyrażenia były tego samego typu (np. przez konwersję obydwu na liczby), a następnie sprawdzają, czy są równe. Ścisły operator równości zobaczy, że dwie wartości są różnymi typami i natychmiast zadecyduje, że nie mogą być równe sobie. Zalecamy używanie operatorów ścisłych, ponieważ prowadzą one do bardziej przewidywalnego kodu.
Większość języków programowania nie posiada obydwu rodzajów operatorów równości, ale możesz napotkać inne różnice w sposobie, w jaki języki decydują o tym, czy dwie zmienne są równe.
✏️ Poniższy program wyświetla wszystkie rodzaje komunikatów opartych na zmiennej
yourAge
. Spróbuj zmienić tę wartość na inną, aby zobaczyć, co zostanie wyświetlone na wyjściu. Możesz również dodać do programu więcej instrukcji if
.Instrukcja else
Za pomocą instrukcji if, nasze programy mogą wykonać zestaw poleceń tylko wtedy, gdy warunek jest prawdziwy. Jeśli chcemy, aby nasze programy wykonały inny zestaw instrukcji, gdy warunek jest fałszywy, możemy użyć instrukcji else.
Wyobraźmy sobie super prosty program do sprawdzania haseł. Logika wygląda tak:
Możemy zaprogramować to za pomocą instrukcji
if
, a następnie else
:if (password === "TOPSECRET") {
println("You got it!");
} else {
println("Try again!");
}
Nasz program gwarantuje, że zawsze będzie podążał jedną z dwóch ścieżek: albo warunek jest prawdziwy i idzie pierwszą ścieżką, albo jest fałszywy i idzie drugą.
✏️ Poniższy program bazuje na wcześniejszym programie sprawdzania wieku, dodając wszędzie instrukcję
else
. Teraz możesz łatwo zobaczyć, co możesz, a czego nie możesz zrobić w danym wieku. Pobaw się zmienną yourAge
i zobacz, jak zmieniają się dane wyjściowe.Instrukcje warunkowe w pseudokodzie
Ten pseudokod reprezentuje pojedynczą instrukcję
if
:IF (<condition>)
{
<instructions>
}
Ten pseudokod zawiera instrukcję
else
z drugim zestawem instrukcji, które mogą zostać wykonane zamiast nich:IF (<condition>)
{
<instructions 1>
}
ELSE
{
<instructions 2>
}
Oto operatory relacyjne w pseudokodzie:
Operator | Znaczenie |
---|---|
a = b | Równy |
a ≠ b | Nie równy |
a > b | Większy od |
a < b | Mniejszy od |
a ≥ b | Większy równy od |
a ≤ b | Mniejszy równy od |
Oto logika sprawdzenia hasła w pseudokodzie:
IF (password = "TOPSECRET")
{
DISPLAY("You got it!")
}
ELSE {
DISPLAY("Try again!");
}
Chcesz dołączyć do dyskusji?
Na razie brak głosów w dyskusji