if (podmínka) a ==, !=, <, > (srovnávací operátory)
if
, které se používá ve spojení se srovnávacími operátory, testuje zda byla splněna nějaká podmínka. Například zda je proměnná vyšší než nějaké číslo. Formát zápisu if podmínky je následující:
if (nejakaPromenna > 50) { // proved neco tady }
Program zkontroluje zda nejakaPromenna je větší než 50. Pokud ano provede následující akci. Jinými slovy pokud závorky obsahují pravdivý výrok, bude spuštěn kód zapsaný ve složených závorkách. Pokud ne, kód bude přeskočen.
Závorky za if mohou být vynechány, potom se bude podmínka vztahovat pouze na náledující příkaz ukončený středníkem.
if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120){ digitalWrite(LEDpin, HIGH); } if (x > 120){ digitalWrite(LEDpin1, HIGH); digitalWrite(LEDpin2, HIGH); } // vsechny moznosti jsou spravnet
Výraz v závorkách musí obsahovat alespoň jeden nebo více operátorů:
Srovnávací operátory:
x == y (x je rovno y) x != y (x není rovno y) x < y (x je menší y) x > y (x je větší y) x <= y (x je menší nebo rovno y) x >= y (x je větší nebo rovno y)
Pozor důležité:
Dejte si pozor na použití samostatného jednoho rovná se(např. if (x = 10)
). Jedno rovná se není porovnání, ale přiřazení. Dojde tedy k nastavení proměnné x na hodnotu 10. Místo toho dvě rovná se (např. if (x == 10)
), testují zda je x rovno 10. Druhá možnost vrací pravdu nebo nepravdu podle vstupní hodnoty, kdežto možnost první vrací pravdu pokaždé. podmínka je tedy vždy splněna.
Tohle je z toho důvodu, že jazyk C vyhodnocuje if (x=10)
jako: 10 je přiřazeno do x (pamatujte, že jedno rovnítko je přiřazovací operátor ne srovnávací operátor), následně tedy x má hodnotu 10.
Následně je tedy v podmínce vyhodnocováno číslo 10, které je vždy vyhodnoceno jako pravda, protože každé nenulové číslo je vyhodnoceno jako pravda. Výsledek tedy nebude to co jste očekávali a navíc budete mít v x desítku, což také není to co by jste chtěli.
if také může být použito jako součást závorkové řidící struktury if…else].