Du er usikker på om grensen selv teller med

Handler om: Betingelse (if), Boolsk uttrykk

`>` og `>=` skiller seg på ett eneste punkt: selve grenseverdien. Er du 18 år på dagen, er `alder > 18` usant, mens `alder >= 18` er sant. Feilen er stille — koden virker for alle verdier unntatt akkurat grensen, og det er sjelden den du tester.

Eksempel

Du tester `er_myndig(20)` og `er_myndig(15)`, begge riktige, men `er_myndig(18)` svarer nei.

Slik tenker du riktig om det

Test alltid grensen selv, ikke bare én verdi over og én under. Les betingelsen høyt: «minst 18» blir `>=`, «mer enn 18» blir `>`.

Slik ser det ut i kode

Slik gikk det galt

def er_myndig(alder):
    return alder > 18      # 18 år faller utenfor

Slik fikser du det

def er_myndig(alder):
    return alder >= 18     # 18 år er myndig

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala