2.7 Villkor, if-sats
I ett program behöver man ibland jämföra två uttryck, t.ex. en variabel mot ett värde, för att avgöra hur man ska gå vidare i programmet. Detta görs i ett villkor som ingår i en if
-sats. Exemplet är denna gång uppdelat i fem delar, tre för att introducera formerna och två för att ge praktiska exempel:
- Villkor med villkorsoperatorer (jämföreslseoperatorer) samt olika exempel på sammansättning av
if
-satsen. - Kombination av flera villkor och logiska operatorer.
- Resultatet av ett villkor är ett booleskt värde, dvs
true
ellerfalse
. Det visas även exempel på funktionenisNaN()
, is Not a Number, och skillnad mellan att använda två eller tre likhetstecken i ett villkor. - Ett exempel där
if
-satser bl.a. används för att kontrollera att indata är på rätt form. - Ett exempel där
if
-satser används för att kontrollera gränser för en variabel.
37 min.
Sammanfattning
- Vid en jämförelse om två värden är lika, används alltid två eller tre likhetstecken, t.ex för att jämföra värdena i variablerna
a
ochb
skriver man(a == b)
eller(a === b)
. - Ett vanligt misstag är att endast skriva ett likhetstecken,
(a = b)
. Detta resulterar inte i något programfel, utan blir istället en tilldelning, dära
tilldelas värdet ib
. - Använder man två likhetstecken jämförs endast värden, medan då man använder tre likhetstecken jämförs både värde och datatyp. Oftast är det endast värdena man vill jämföra, så i de flesta fall räcker det med två likhetstecken.
- En
if
-sats kan användas både med och utanelse
. Man kan också kombinera fleraif
-satser med en nyif
-sats direkt efterelse
. - Har man flera villkor som ska vara uppfyllda kan de kombineras med
&&
(and) eller||
(or). Man kan också invertera ett villkor med!
(not).
Egna övningar
Här följer ett förslag på några egna övningar. Öppna filen test.html och test.js och utför följande:
- I funtionen
test
läsesa
ochb
in från textfälten. Lägg till enif
-sats som kontrollerar oma
är större änb
. Skriv i så fall ut "a större än b" i elementet för resultat. Lägg också till enelse
-del, där du skriver något annat. - Lägg till ytterligare en
if
-sats (eller ändra i villkoret i den första) och testa om bådea
ochb
är större än 25. - Ändra villkoret, så att du testar om någon av
a
ellerb
är större än 25. - Skriv en kombinerad
if
-sats, där du gör olika utskrifter oma
är större än 20, 30 eller 40.- Testa de tre gränserna i varsin
if
-sats, som du kombinerar medelse if
. - Tänk också på i vilken ordning de tre testen måste utföras.
- Testa de tre gränserna i varsin