
Om annars (programmering)

Uppgradera för mer innehåll
Sant eller falskt? När du använder "Om annars" instruktioner, i filmens exempel, behövs bara ett villkor.
Lina har köpt en chokladask med ljus och mörk choklad. Hon har lärt sin robot att ge Maria och Leon deras favoritsorter. Så här ser pseudokoden ut som Lina skrivit till roboten: Plocka upp en chokladbit. Om det är ljus choklad ge chokladen till Maria. Om det är mörk choklad ge chokladen till Leon.
Nu ska vi se hur pseudokoden fungerar. Roboten plockar upp en chokladbit, och den råkar vara ljus. Det första villkoret är “ljus choklad”, det är sant och… Roboten ger chokladbiten till Maria. Nu har Roboten inte längre någon chokladbit i handen. Trots det fortsätter den till nästa instruktion som är: “Om mörk choklad” Men roboten håller ju inte i någon chokladbit.
Så det är onödigt att undersöka om den är mörk. Hur kan Lina berätta det för roboten? Linas pseudokod har två villkor. Om ljus choklad och Om mörk choklad Chokladasken innehåller bara två olika sorters choklad. Om det inte är ljus choklad som roboten plockar upp...
så måste det vara mörk choklad. Pseudokoden kan ändras till: Om ljus choklad Ge Maria choklad Annars Ge Leon choklad Det behövs alltså bara ett villkor för att Maria och Leon ska få sin favoritchoklad. Vi testar Linas pseudokod. Roboten tar upp en chokladbit och den är... ljus.
Villkoret “ljus choklad” är sant. Roboten ger Maria chokladbiten. Och sen... Såg du vad som hände där? När villkoret ljus choklad var sant så hoppade roboten över både instruktionen “Annars” och instruktionen “Ge Leon choklad”.
Programmet avslutas efter att roboten gett Maria chokladen. Nu startar vi om programmet. Roboten tar en ny chokladbit. Den här gången är det... en mörk bit.
Villkoret är då falskt och programmet hoppar över instruktionen “Ge Maria choklad”. Nu vet roboten att det inte är ljus choklad och då utför den instruktionerna “Annars” och “Ge Leon choklad”. Det räcker alltså med att roboten kollar om det är ljus choklad för att veta vem som ska få chokladbiten. När Lina använder färre villkor, blir koden mer effektiv. Det räcker med ett test av villkor istället för två.
Linas kod blir då mer lättläst. Det är snyggare kod. Ja, faktiskt så talar programmerare om “snygg kod”. Den nya pseudokoden är ett bättre sätt att lösa uppgiften på. Det är en bättre algoritm för att dela ut choklad.
Så nu är koden snyggare än vad den var från början. Ingen fulkod här inte!