Tento článok je súčasťou môjho online kurzu programovania v JavaScripte. Každý sa ho môže zúčastniť, kurz je zdarma. Kto sa ešte nezaregistroval, môže tak spraviť tu: http://eepurl.com/UzefH. Kurz obsahuje teoretickú časť (články na tomto blogu) a praktickú čast (domáce úlohy zadávané emailom).
V prvej lekcii som vysvetľoval prvé základné stavebné kamene každého programu/aplikácie. Dnes si ukážeme ďalšie stavebné kamene a to podmienky.
Podmienky určujú, ktorá časť kódu sa vykoná. Z prvej lekcie budeme potrebovať vedieť čo sú boolean premenné (true, false).
var isRaining = true; if (isRaining) { //prší, vykoná sa táto časť kódu }
Ak by sme definovali “isRaining” false, blok kódu obalený if-om by sa nevykonal. Keďže je “isRaining” true, “prší” sa vykoná.
var isRaining = false; if (isRaining) { //prší, vykoná sa táto časť kódu } else { //neprší, vykoná sa táto časť kódu }
V ukážke vyššie definujeme boolean premennú “isRaining” s hodnotou false (nepravda). Ktorá časť kódu sa vykoná? Vykoná sa “neprší” (vetva else), pretože “isRaining” je nepravda. Ak by sme definovali “isRaining” ako true, vykoná sa “prší”. Všimnite si medzeru za “if” a medzeru pred a za “else”. Takisto odsadenie 2 medzerami alebo tabulátorom vo vnútri “if”. Je to “coding standard“, ktorý by mali dodržiavať všetci programátori.
Skoro by som zabudol na “else if”:
var age = 18; if (age === 18) { //si dospelý, už môžeš piť alkohol legálne } else if (age < 18) { //si ešte dieťa, môžeš piť nelegálne alkohol } else { //máš viac ako 18 rokov. Si už stará raketa. }
“else if” použijeme ak chceme overiť viacero podmienok. “else if” môže byť za sebou ľubovoľne veľakrát. Po “else if” môže a nemusí nasledovať “else”.
Ešte je tu pár vecí, ktoré by sme mali vedieť pri podmienkach a boolean hodnotách. A to:
Operátory a vyhodnocovanie podmienok:
Operátor is equal ==
var name = 'Josh'; //operátor is equal (==) porovná 2 hodnoty a vyhodnotí podmienku na true (ak sa rovnajú) alebo false (ak sa nerovnajú) var isJosh = (name == 'Josh'); //isJosh sa vyhodnotí na true. Zátvorky sú ľubovoľné, slúžia pre prehľadnosť kódu var isPeter = (name == 'Peter'); //isPeter sa vyhodnotí na false pretože 'Josh' != 'Peter' if (name == 'Josh') { //som Josh }
Existuje aj operátor “===”, ktorý porovnáva rovnosť hodnôt ako aj “==” ale líšia sa tým, že operátor “===” porovnáva aj rovnosť typov premenných:
var zero = 0; if (zero == "0") { //podmienka sa vyhodnotí na true. V JavaScripte môžeme porovnávať čísla so stringami s operátorom == } if (zero === "0") { //podmienka sa vyhodnotí na false, pretože zero je typ Number a "0" je String }
Operátor nerovná sa (is not equal) !=
var zero = 0; if (zero != "0") { //tento blok sa nevykoná, vyhodnotenie podmienky je false } //operátor !== porovnáva hodnotu aj typ premenných if (1 !== "1") { //true, 1 je typ Number, "1" je typ string. }
Porovnávajúce operátory <, >, <=, >=
if (3 > 4) { //3 nie je väčšie ako 4... } if (5 <= 5) { //5 je menšie, alebo rovné 5 }
Operátor && (and) a || (or)
var isRaining = true; var isStorm = false; var isRainingAndStorm = isRaining && isStorm; //operátor && je logický AND (a zároveň). Porovnáva 2 hodnoty. Ak sú obe hodnoty true, podmienku vyhodnotí na true. Ak je jedna, alebo obe hodnoty false, podmienku vyhodnotí na false isRainingAndStorm = isRaining || isStorm //operátor || je logický OR (alebo). Stačí ak je jedna hodnota true a celý výraz sa vyhodnotí na true
Viac o porovnávacích operátoroch sa dozviete tu.
Zhrnutie
Mali by ste chápať načo slúžia podmienky “if”, “else if”, “else”
Mali by ste chápať operátorom “&&”, “||”, “==”, “===”, “!=”, “!==”, “<“, “>”, “<=”, “>=”
Cvičenie/Domáca úloha
http://jsfiddle.net/elfoslav/fyC3L
Ako odovzdávať cvičenia? Keď sa ti zobrazí stránka s cvičením, klikni v hornom menu na “Fork”. To vytvorí tvoju kópiu cvičenia. Keď budeš chcieť spustiť kód, klikni v hornom menu na “Run”. Keď budeš mať cvičenie hotové, klikni na “Update”, to uloží tvoje cvičenie. Potom už len skopíruješ link cvičenia a odošleš mi ho do mailu. Ja ti cvičenie skontrolujem a oznámkujem.
Alebo jednoduchšie: Zaregistruj sa na http://www.codermania.com a prejdi si cvičenia tam. Cvičenia sa vyhodnocujú automaticky. Ak si nebudeš dať vedieť rady, je tam tlačidlo “Ask for help”. Ak nevieš po anglicky, môžeš použiť Google translator. Veľa šťastia.