If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

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átorVýznamPravdivé výrazy
===Striktní rovnostmyAge === 28
!==Striktní nerovnostmyAge !== 2928 !== 29
>Větší nežmyAge > 2528 > 25
>=Větší než nebo rovnomyAge >= 2828 >= 28
<Menší nežmyAge < 3028 < 30
<=Menší než nebo rovnomyAge <= 2828 <= 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.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.