
Nästlad om annars (programmering)

Uppgradera för mer innehåll
Sant eller falskt? När det är fler än ett villkor som ska testas kan man använda nästlade om-satser.
Lina har lärt sin robot att dela ut choklad till Maria eller Leon. Roboten plockar upp en chokladbit Den är ljus och villkoret “ljus choklad” är sant. Roboten ger chokladen till Maria. Men Maria vill inte ha den.. fast det är ljus choklad.
Jag är allergisk mot nötter. Så om det är nötter i chokladen kan jag inte äta den. Då måste Lina ge nya instruktioner till roboten, om det är ljus choklad och om det är nötter i den ska roboten inte ge chokladen till Maria. Vad gör vi med den chokladbiten? Leon gillar bara mörk choklad.
Det är bara att lägga tillbaka den i asken. När roboten plockar upp en chokladbit så kollar den om det är ljus choklad. Men det räcker inte längre, eftersom Maria är allergisk mot nötter. Om det är ljus choklad, måste roboten undersöka om det också är nötter i den. Det blir en om-instruktion inuti en om-instruktion. Är villkoret ‘att det är nötter i den’ också sant, ska roboten lägga tillbaka chokladbiten i asken.
Annars Ger roboten chokladbiten till Maria. Men när villkoret “ljus choklad” inte är sant, måste den så klart vara mörk, som Leon gillar. Då blir instruktionen till roboten, “Ge Leon choklad.” Vi testar den nya pseudokoden. Roboten plockar upp en chokladbit... Och den är ljus.
Första villkoret är “ljus choklad” och det är sant. Nästa villkor som testas är “nötter”. Är det villkoret sant eller falskt? Roboten tittar riktigt noga och ser att det är nötter i chokladbiten. Det villkoret är sant. Då utförs instruktionen att stoppa tillbaka chokladbiten i asken.
Resten av instruktionerna utförs ju bara om villkoret ‘ljus choklad’ är falskt eller om ‘ljus choklad’ är sant och ‘nötter’ är falskt. Programmet avslutas när roboten stoppat tillbaka chokladbiten. Vi startar programmet igen för att ta upp en ny bit. Den här gången är det också ljus choklad, så första villkoret är sant. Nästa test är att roboten undersöker om det är nötter i chokladbiten.
Det finns inga nötter och andra villkoret blir falskt. Nu utförs instruktionen “Annars Ge Maria choklad”. Och sen avslutas programmet. Lina har skrivit en om-instruktion inuti en annan om-instruktion. Det kallas för en nästlad om-sats.
Med nästlade om-satser kan roboten avgöra om det är ljus eller mörk choklad och om den ljusa chokladen innehåller nötter. Nu kan Maria mumsa på sin chokladbit utan att vara orolig att den innehåller nötter.