Node.js dla początkujących - Część 3: Instrukcje warunkowe i pętle
Mateusz Kędziora

Cześć! W dzisiejszym wpisie zanurzymy się w fundamentalne koncepcje programowania w JavaScript: instrukcje warunkowe i pętle. To one pozwalają naszym programom podejmować decyzje i powtarzać czynności, czyniąc je dynamicznymi i interaktywnymi. Gotowi na małą dawkę logiki? Zaczynamy!
Instrukcje Warunkowe: Decyzje w Kodzie
Wyobraź sobie, że Twój program musi zareagować inaczej w zależności od sytuacji. Wtedy wkraczają instrukcje warunkowe.
if
: Najprostsza forma. Wykonuje kod tylko wtedy, gdy warunek jest prawdziwy (true
).
let wiek = 20;
if (wiek >= 18) {
console.log("Jesteś pełnoletni!"); // Wykona się, bo wiek to 20
}
else
: Uzupełnienieif
. Wykonuje kod, gdy warunek wif
jest fałszywy (false
).
let wiek = 15;
if (wiek >= 18) {
console.log("Jesteś pełnoletni!");
} else {
console.log("Jesteś niepełnoletni!"); // Wykona się, bo wiek to 15
}
else if
: Pozwala na sprawdzenie wielu warunków po kolei.
let wynik = 75;
if (wynik >= 90) {
console.log("Ocena: A");
} else if (wynik >= 70) {
console.log("Ocena: B"); // Wykona się, bo wynik to 75
} else if (wynik >= 50) {
console.log("Ocena: C");
} else {
console.log("Ocena: F");
}
switch
: Alternatywa dla wieluelse if
, szczególnie przydatna, gdy sprawdzamy jedną zmienną pod kątem wielu wartości.
let dzienTygodnia = 3;
switch (dzienTygodnia) {
case 1:
console.log("Poniedziałek");
break;
case 2:
console.log("Wtorek");
break;
case 3:
console.log("Środa"); // Wykona się
break;
default:
console.log("Nieznany dzień");
}
Pamiętaj o break
! Bez niego program wykonałby również instrukcje dla kolejnych case
.
Pętle: Powtarzanie to Podstawa
Pętle pozwalają nam na wielokrotne wykonywanie tego samego bloku kodu.
for
: Najczęściej używana pętla. Idealna, gdy znamy liczbę iteracji.
for (let i = 0; i < 5; i++) {
console.log("Iteracja nr " + i); // Wykona się 5 razy (od 0 do 4)
}
while
: Wykonuje kod dopóki warunek jest prawdziwy.
let licznik = 0;
while (licznik < 3) {
console.log("Licznik: " + licznik);
licznik++; // Pamiętaj o inkrementacji, inaczej pętla będzie nieskończona!
}
do...while
: Podobna dowhile
, ale kod wykona się przynajmniej raz, nawet jeśli warunek jest od początku fałszywy.
let x = 10;
do {
console.log("X: " + x); // Wykona się raz, mimo że x > 5
x++;
} while (x < 5);
Wyrażenia Warunkowe: Jeszcze Więcej Sposobów na Decyzje
Oprócz podstawowych instrukcji if
, else if
, else
i switch
, warto poznać kilka dodatkowych aspektów związanych z wyrażeniami warunkowymi:
- Operator warunkowy (ternary): To skrócony zapis instrukcji
if...else
. Ma postaćwarunek ? wartość_jeśli_prawda : wartość_jeśli_fałsz
.
let wiek = 19;
let status = wiek >= 18 ? "Pełnoletni" : "Niepełnoletni";
console.log(status); // Wypisze "Pełnoletni"
//To jest równoważne:
if (wiek >= 18) {
status = "Pełnoletni";
} else {
status = "Niepełnoletni";
}
Operator ternary jest bardzo przydatny do krótkich, jednowierszowych warunków. Unikaj jednak zagnieżdżania wielu operatorów ternary, ponieważ kod może stać się trudny do odczytania.
Wartości truthy i falsy: W JavaScript, wartości nie-booleanowskie mogą być interpretowane jako
true
lubfalse
w kontekście warunkowym.- Falsy:
false
,0
,""
(pusty string),null
,undefined
,NaN
. - Truthy: Wszystkie inne wartości.
- Falsy:
let imie = "";
if (imie) {
// "" jest falsy, więc ten blok się nie wykona
console.log("Witaj, " + imie);
} else {
console.log("Wprowadź imię!"); // Ten blok się wykona
}
let liczba = 10;
if (liczba) {
// 10 jest truthy, więc ten blok się wykona
console.log("Liczba jest większa od zera, albo nie jest zerem");
}
Zrozumienie wartości truthy i falsy jest kluczowe, ponieważ pozwala na pisanie zwięzłego i czytelnego kodu.
Łączenie warunków (operatory logiczne): Możemy łączyć kilka warunków za pomocą operatorów logicznych:
&&
(AND - i): Warunek jest prawdziwy tylko wtedy, gdy oba warunki są prawdziwe.||
(OR - lub): Warunek jest prawdziwy, gdy przynajmniej jeden z warunków jest prawdziwy.!
(NOT - negacja): Zmienia wartość logiczną na przeciwną.
let x = 5;
let y = 10;
if (x > 0 && y < 20) {
// Oba warunki są prawdziwe
console.log("x jest dodatnie i y jest mniejsze od 20");
}
if (x < 0 || y > 5) {
// Przynajmniej jeden warunek jest prawdziwy
console.log("x jest ujemne lub y jest większe od 5");
}
let prawda = true;
if (!prawda) {
// Warunek jest fałszywy, bo negujemy prawdę
console.log("To się nie wykona");
} else {
console.log("To się wykona");
}
- Kolejność wykonywania operatorów Tak jak w matematyce, operatory logiczne mają swoją kolejność wykonywania. Najpierw wykonywana jest negacja (
!
), potem iloczyn logiczny (&&
), a na końcu suma logiczna (||
). Można używać nawiasów, aby wymusić inną kolejność.
let a = true;
let b = false;
let c = true;
if (a || (b && c)) {
// Najpierw b && c, potem a || (b && c)
console.log("Warunek spełniony"); // Wykona się, bo b && c to false, a a to true
}
if ((a || b) && c) {
// Najpierw (a || b), potem (a || b) && c
console.log("Ten warunek też jest spełniony"); // Wykona się, bo (a || b) to true a c to true
}
Praca Domowa:
- Napisz program, który wypisze liczby od 1 do 100, ale dla liczb podzielnych przez 3 wypisze “Przez 3”, dla podzielnych przez 5 wypisze “Przez 5”, a dla podzielnych przez 3 i 5 wypisze “Przez 3 i 5”.
- Stwórz pętlę
while
, która będzie prosić użytkownika o podanie liczby, dopóki nie poda liczby większej od 10. (Można użyć modułureadline
w Node.js do interakcji z konsolą).
Eksperymentuj!
Najlepszym sposobem na naukę jest praktyka. Zmieniaj warunki, modyfikuj pętle, zobacz, co się stanie. Nie bój się eksperymentować!
Czytaj Dalej!
To tylko krótki wstęp do instrukcji warunkowych i pętli. W kolejnych wpisach zgłębimy te tematy jeszcze bardziej. Zachęcam do lektury pozostałych postów na naszym blogu!
Mam nadzieję, że ten artykuł był pomocny. Jeśli masz jakieś pytania, śmiało zadawaj je w komentarzach! Powodzenia w nauce JavaScript!
Polecane artykuły
DevOps: Automatyzacja zadań sysadmina dla programistów
Zautomatyzuj pracę sysadmina w środowisku DevOps! Praktyczne przykłady, skrypty, Ansible, Terraform, Prometheus i Grafana.
Mateusz Kędziora
Automatyzacja Linux/macOS z Bash: Praktyczny Przewodnik
Zacznij automatyzować system Linux/macOS z Bash! Dowiedz się, czym jest Bash, jak pisać skrypty i używać podstawowych komend.
Mateusz Kędziora
Testowanie z AI: Jak sztuczna inteligencja zmienia QA?
Zautomatyzuj testy z AI! Zredukuj koszty, przyspiesz proces, zwiększ pokrycie i popraw jakość oprogramowania. Sprawdź, jak to zrobić!
Mateusz Kędziora