Language Switcher Fallback

If tingimuslause, tehted, loogikatehted

If tingimuslause süntaks näeb välja selline:

if ([tingimus ehk mingi avaldis]) {
  [kood, mis jooksutatakse siis, kui avaldis eespool oli tõene]
}

Kõige tüüpilisem avaldis if-lause tingimuseks on võrdlus, näiteks:

if (digitalRead(button) == HIGH) {...}

või

if (analogRead(potentiometer) > 115) {...}

== ja > on võrdlusoperaatorid. Võrdlusoperaator annab tulemuseks, kas "tõene" (true) või "väär" (false). Kui potentsiomeetriga sisendilt loetav väärtus on parasjagu 32, siis viimase näite tingimus analogRead(potentiometer) > 115 on "väär". Kui aga 251, siis on võrdlus "tõene".

Võrdlusoperaatorid
 == on võrdne
!= ei ole võrdne
< väiksem kui
<= väiksem või võrdne
> suurem kui
>= suurem või võrdne

 

Tõene/true ja väär/false on niinimetatud boolean väärtused. If lause tingimuses kirjas olevat loetakse boolean väärtusena - kui see on tõene, siis if tingimuse sees olevat koodi jooksutatakse, kui on väär, siis ei jooksutata vaid hüpatakse üle.

Aga boolean väärtuseks teisendatakse ka muid väärtusi. Nimelt number null on samaväärne väärtusega "väär", kõik muud numbrid ja mittenumbrilised väärtused loetakse tõesuseks. Kõige tüüpilisemalt saab seda asjaolu ära kasutada digitaalsete väärtuste (0 ja 1) puhul, näiteks if (digitalRead(button)) töötab sama hästi kui if (digitalRead(button) == HIGH), sest digitalReadi tulemus LOW salvestatakse nullina ja HIGH salvestatakse ühena. Null on false, üks on true.

Aga see asjaolu, et muud väärtused peale nulli on "tõesed" toob kaasa, et kui teha võrdlusoperaatoris kirjaviga ja kahe võrdusmärgi asemel kirjutada üks võrdusmärk:

in someVariable = 2;
if (someVariable = 10) {...}

siis see avaldis on alati tõene. See avaldis toob kaasa ka selle, et someVariable saab väärtuseks 10, aga tema eelnevat väärtust ei võrrelda 10-ga, vaid "mingi suvaline avaldis, välja arvatud null" on tõene.