Programmeringskurs (alle) *: 2.3 If-tester
Hvis sånn - gjør slik
I dag er det mye snakk om kunstig intelligens og biler som kan kjøre av seg selv. Mye av skepsisen mot selvkjørende biler handler om at vi ikke helt klarer å tro at de vil ta de rette valgene i kritiske situasjoner. Hvordan kan bilen klare å velge om den skal kjøre mot rødt lys eller bli stående hvis det kommer en annen bil bakfra i full fart? Hva den velger, vil avgjøres av koden som er skrevet for å kontrollere bilen. Koden vil være full av det vi kaller logiske tester. Hva skal koden gjøre hvis noe skjer? Hvor lenge må bilen bremse for å forhindre at den kjører inn i bilen foran, men likevel ikke blir en propp i trafikken?
En if-test sjekker om noe er sant eller ikke, eller om en bestemt forutsetning er til stede. Vi sier da at if-testen slår til. Hvis den gjør det, skal programmet gjøre et eller annet. Hvis en bil kommer kjørende mot et trafikklys, og det er rødt, må den stoppe. Vi kan beskrive dette slik:
Stopp bilen hvis det er rødt lys
Dette forstår ikke datamaskinen, men vi kan stokke litt om:
Hvis det er rødt lys – stopp bilen
Hvis vi oversetter dette til Python, blir det slik:
if redLight:
stopCar()
I denne koden er redLight det vi kaller en boolsk verdi. Den er enten sann (True) eller usann (False). Enten er det rødt lys, eller så er det ikke rødt lys.
En if-test fungerer slik:
if betingelse :
handling
Hvis betingelsen er True, utføres handlingen. Merk at vi setter kolon etter betingelsen, og at handlingen skal være rykket inn med fire mellomrom på linjen etter. Innrykket skjer stort sett automatisk når vi bruker en kode-editor.
I alle if-tester sjekker vi om en betingelse er sann eller ikke, og da bruker vi som oftest logiske sammenlikninger. En if-test fungerer slik:
Lag et spørsmål med et regnestykke. Brukeren skal skrive inn svaret. Hvis brukeren svarer riktig, skal «Riktig!» skrives på skjermen.
Løsning
Vi lager programmet slik:
Programmet ber brukeren svare på spørsmålet «Hva blir 2 + 2*2 ?». Hvis og bare hvis brukeren svarer med tallet 6, vil if-testen slå til. Hvis brukeren skriver noe annet, skjer ingenting, og programmet avsluttes. Betingelsen her er dermed at svaret er lik tallet 6, og bare da utføres handlingen print("Riktig!"). Her ser du to resultater:
|
|