Hlavní obsah
Programování
Kurz: Programování > Kapitola 1
Lekce 11: Logika a podmíněné příkazy- Podmíněné příkazy
- Výzva: Hopík
- Více interakce myší
- Výzva: Tvá první aplikace pro malování
- Boolean
- Výzva: Analyzátor čísel
- Logičtí operátoři
- Výzva: Tvé první tlačítko
- Výzva: Chytřejší tlačítko
- If/Else – část 1
- Výzva: Rychlé kartičky
- If/Else – část 2
- Shrnutí: Logika a podmíněné příkazy
- Náhodná čísla
- Projekt: Věštecká koule 8-Ball
Shrnutí: Logika a podmíněné příkazy
Zde je přehled toho, co jsme probrali v tomto tutoriálu o logických a podmíněných příkazech.
Často chceme být schopni dělat věci v našich programech "podmíněně" - chceme být schopni říct "pokud je toto pravda, potom udělej X, ale pokud je pravda tamto, pak udělej Y." Je to jako když se vzbudíme po ránu - "pokud venku prší, pak si beru deštník, ale pokud je slunečno, vezmu si sluneční brýle." V našich programech můžeme věci provádět podmíněně pomocí if příkazů a if/else příkazů v kombinaci s podmíněnými výrazy.
Příkaz if říká programu, aby spustil blok kódu, pokud je podmínka pravdivá. V následujícím kódu zobrazujeme zprávu pouze pokud je
x
větší než 0:var x = 5;
if (x > 0) {
text('x je kladné číslo!', 200, 200);
}
Protože x je 5, což je větší než 0, zobrazujeme zprávu na plátně. Pokud bychom změnili x na -1, neviděli bychom vůbec žádnou zprávu, protože x by nebylo větší než 0.
x > 0
je to, čemu říkáme podmíněný výraz - což znamená, že se jedná o výraz, který se vyhodnocuje na true
nebo false
. Je-li hodnota buď true
nebo false
, nazýváme ji hodnotou boolean (na rozdíl od čísla nebo řetězce). Například bychom mohli zobrazit následující podmíněný výraz:text(x > 0, 200, 200); // Zobrazí se "true"
Mohli bychom ji také uložit do proměnné a pak ji zobrazit:
var isPositive = x > 0;
text(isPositive, 200, 200);
Pak bychom řekli, že
isPositive
ukládá booleanovou hodnotu, protože je buď true
nebo false
, v závislosti na tom, co jsme nastavili pro x.Existuje mnoho způsobů, jak vytvořit podmíněné výrazy, které budou vyhodnoceny jako
true
nebo false
, protože existuje mnoho porovnávacích operátorů. Zde jsou ty nejpopulárnější:Když vezmeme do úvahy následující proměnnou, zde jsou nejběžnější srovnávací operátory a výrazy, které by byly ve vztahu k nim pravdivé:
var myAge = 28;
Operátor | Význam | Pravdivé výrazy | |
---|---|---|---|
=== | Striktní rovnost | myAge === 28 | |
!== | Striktní nerovnost | myAge !== 29 | 28 !== 29 |
> | Větší než | myAge > 25 | 28 > 25 |
>= | Větší než nebo rovno | myAge >= 28 | 28 >= 28 |
< | Menší než | myAge < 30 | 28 < 30 |
<= | Menší než nebo rovno | myAge <= 28 | 28 <= 28 |
Velmi častou chybou je splést si operátor přiřazení (
=
) s operátorem rovnosti (===
), protože oba používají stejné znaky, ale jsou zcela odlišné. Operátor přiřazení ve skutečnosti změní hodnotu proměnné, zatímco operátor rovnosti jednoduše přečte hodnotu proměnné a zjistí, zda se něčemu rovná. Například:var x = 2 + 2; // Nastaví hodnotu na 4
if (x === 4) { // Ptá se: "Je toto rovno 4?"
text("ano, 2 + 2 = 4!", 200, 200);
}
Někdy chceme spojit několik různých porovnání do podmíněného výrazu, a proto máme logické operátory. Tyto operátory nám umožňují v našich programech říct věci jako "pokud jsou X a zároveň Y pravdivé" nebo "pokud X nebo Y jsou pravdivé".
Pokud chceme zajistit, aby byly obě podmínky pravdivé, můžeme použít operátor
&&
("a"):var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 && numberOfClouds < 5) {
text("Namaž se opalovacím krémem!", 200, 200);
}
Často to používáme v našich programech pro kontrolu toho, zda je pozice myši uvnitř obdélníku (pro napodobení tlačítka), v tom případě potřebujeme několik operátorů
&&
:rect(100, 50, 100, 100);
mousePressed = function() {
if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
text("Tlačítko bylo zmáčknuto!", 80, 75);
}
};
Pokud nám záleží pouze na tom, že je alespoň jedna podmínka pravdivá, můžeme použít operátor
||
("nebo"):var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 || numberOfClouds < 5) {
text("Namaž se opalovacím krémem, pokud je venku teplo nebo tam nejsou oblaka!", 200, 200);
}
Ve stejném výrazu můžeme použít jak
&&
, tak ||
, pokud máme nějakou velmi složitou podmínku ke kontrole. Stačí použít závorky pro seskupení výrazů, aby program nebyl zmatený, v jakém pořadí je má vyhodnotit:var myAge = 28;
if ((myAge >= 0 && myAge < 3) || myAge > 90) {
println('Ještě nejsi ve svých nejlepších letech.');
}
Nyní se vraťme k příkazům if. Často chceme spustit určitý blok kódu v případě, že není splněna podmínka - v tom případě přidáme else statement.
var age = 28;
if (age > 16) {
println('Supr, už můžeš řídit!');
} else {
println('Promiň, ale ještě ' + (16 - age) + ' let, než budeš moct řídit.');
}
Někdy chceme zkontrolovat více podmínek a dělat různé věci na základě každé z nich; v takovém případě můžeme použít
else if
:var age = 20;
if (age >= 35) {
println('Můžeš hlasovat A případně zastávat jakoukoli pozici ve vládě!');
} else if (age >= 30) {
println('Můžeš hlasovat A zkusit se dostat do senátu!');
} else if (age >= 18) {
println('Můžeš hlasovat!');
} else {
println('Nemůžeš vládu nijak ovlivnit!');
}
Můžeš kontrolovat podmínky, jak jen chceš, jen se ujisti, že je každá z tvých podmínek skutečně kontrolovatelná. Otestuj svůj kód změnou proměnných, dokud neprojdeš každou část svého kódu, a ujisti se tak, že vše funguje, jak má.
Jak snad nyní vidíš, podmínky jsou důležitou součástí programování a umožňují nám vytvářet mnohem lepší a flexibilnější programy.
Chceš se zapojit do diskuze?
Zatím žádné příspěvky.