Hoppa till innehållet
Matematik · Årskurs 8 · Problemlösning och programmering · Vårtermin

Villkor och val i programmering

Eleverna använder villkorssatser (if/else) för att skapa program som fattar beslut.

Skolverket KursplanerLgr22:Ma7-9/Problemlösning/Algoritmer och programmering

Om detta ämne

Villkorssatser som if och if-else är centrala i programmering. De låter program fatta beslut baserat på om ett villkor är sant eller falskt, och styr därmed programmets flöde. Elever i årskurs 8 arbetar med enkla exempel, som att avgöra om ett tal är jämnt eller udda genom modulo-operatorn. De jämför if-satser, som bara körs vid sant villkor, med if-else-satser, som hanterar både sant och falskt fall. Detta bygger förståelse för hur algoritmer kan simulera beslutsfattande.

I Lgr22:s kapitel om problemlösning och programmering stärker ämnet matematiska förmågor som logiskt resonemang och modellering. Eleverna designar program som löser verkliga problem, till exempel sortering av data eller enkla spelmekaniker. Genom att testa och felsöka kod utvecklar de uthållighet och precision i tänkandet, vilket är grundläggande för vidare studier i matematik och datavetenskap.

Aktivt lärande passar utmärkt för villkorssatser eftersom elever snabbt ser effekter av sin kod i realtid. Parprogrammering och iterativ felsökning gör abstrakta koncept konkreta, ökar engagemanget och främjar diskussion om varför ett program beter sig på ett visst sätt.

Nyckelfrågor

  1. Förklara hur villkorssatser styr programmets flöde.
  2. Jämför en if-sats med en if-else-sats.
  3. Designa ett program som avgör om ett tal är jämnt eller udda.

Lärandemål

  • Förklara hur villkorssatser (if, if-else) styr programmets exekveringsflöde baserat på logiska uttryck.
  • Jämföra funktionaliteten och användningsområdena för en if-sats kontra en if-else-sats i programmering.
  • Designa och implementera ett program som använder villkorssatser för att fatta beslut, till exempel avgöra om ett tal är jämnt eller udda.
  • Analysera och modifiera befintlig kod för att inkludera villkorlig logik för att lösa ett givet problem.

Innan du börjar

Variabler och datatyper

Varför: Eleverna behöver förstå hur man lagrar och hanterar data (t.ex. tal) i variabler för att kunna använda dem i villkor.

Grundläggande operatorer

Varför: Förståelse för jämförelseoperatorer (>, <, ==, !=) och aritmetiska operatorer (+, -, *) är nödvändigt för att skapa logiska uttryck i villkorssatser.

Nyckelbegrepp

VillkorssatsEn programmeringskonstruktion som tillåter ett program att utföra olika handlingar beroende på om ett visst villkor är sant eller falskt.
If-satsEn villkorssats som endast exekverar en kodblock om det angivna villkoret är sant. Om villkoret är falskt hoppas kodblocket över.
If-else-satsEn villkorssats som exekverar ett kodblock om villkoret är sant, och ett annat kodblock om villkoret är falskt.
Logiskt uttryckEtt uttryck som utvärderas till antingen sant (true) eller falskt (false), och som används för att styra villkorssatser.
Modulo-operatorn (%)En operator som ger resten vid heltalsdivision. Används ofta för att avgöra om ett tal är jämnt eller udda.

Se upp för dessa missuppfattningar

Vanlig missuppfattningEn if-sats körs alltid, oavsett villkor.

Vad man ska lära ut istället

If-satsen körs endast om villkoret är sant. Aktiva övningar som att köra kod med olika inmatningar visar elever direkt när koden hoppar över blokken, och parvis diskussion klargör flödet.

Vanlig missuppfattningBåde if- och else-del körs i if-else.

Vad man ska lära ut istället

Endast en gren körs: if vid sant, else vid falskt. Genom att spåra exekvering i stegvisa simuleringar ser elever den exklusiva logiken, vilket minskar förvirring via hands-on testning.

Vanlig missuppfattningVillkor måste vara exakt lika för att fungera.

Vad man ska lära ut istället

Jämförelseoperatorer som == eller > räcker. Elever testar gränsfall i grupper och upptäcker genom trial-and-error att logiska operatorer hanterar variationer effektivt.

Idéer för aktivt lärande

Se alla aktiviteter

Kopplingar till Verkligheten

  • I spelutveckling används villkorssatser ständigt för att avgöra spelmekanik, till exempel om en spelare har tillräckligt med poäng för att nå nästa nivå, eller om en fiende upptäcker spelaren baserat på synfält.
  • I webbutveckling styr villkorssatser hur en webbsida beter sig. Till exempel kan en inloggningssida visa olika meddelanden beroende på om användarnamnet och lösenordet är korrekta, eller om användaren är administratör.

Bedömningsidéer

Utgångsbiljett

Ge eleverna en kort kodsnutt med en if-sats och be dem skriva ner vad som kommer att skrivas ut till skärmen om variabeln 'poäng' är 15. Ställ sedan en följdfråga: Hur skulle du ändra koden för att även skriva ut 'Försök igen' om poängen är mindre än 10?

Diskussionsfråga

Ställ frågan: 'När skulle du välja att använda enbart en if-sats istället för en if-else-sats i ett program?' Låt eleverna diskutera i par och sedan dela sina tankar med klassen, med fokus på scenarier där det bara finns ett möjligt utfall att agera på.

Snabbkontroll

Visa en enkel algoritm för att avgöra om ett tal är positivt eller negativt, skriven i pseudokod. Be eleverna identifiera villkoret som avgör utfallet och förklara kortfattat hur programmet skulle agera om talet var noll.

Vanliga frågor

Hur fungerar en if-else-sats i programmering?
En if-else-sats utvärderar ett villkor: om sant körs if-blokken, annars else-blokken. Exempel: if (tal % 2 == 0) {skriva 'jämnt'} else {skriva 'udda'}. Detta skapar grenar i programmets flöde och gör kod flexibel för olika inputs. Elever övar genom att skriva och testa egna satser.
Vilka skillnader finns mellan if och if-else?
If körs bara vid sant villkor, medan if-else hanterar både sant och falskt. If-else undviker tom kod vid falskt fall. I undervisning jämför elever genom att köra båda versioner parallellt och notera skillnader i utdata, vilket förstärker förståelsen.
Hur kan aktivt lärande hjälpa elever med villkorssatser?
Aktivt lärande gör villkor konkreta genom kodning i realtid, parprogrammering och felsökning. Elever ser omedelbart hur beslut påverkar utdata, diskuterar fel i grupp och itererar lösningar. Detta bygger självförtroende, logiskt tänkande och retention bättre än passiv läsning, med hög motivation från spelifierade uppgifter.
Exempel på program med villkorssatser för årskurs 8?
Ett enkelt program: Inläs månad, if (månad > 3 && månad < 10) {vår/sommar} else {höst/vinter}. Ett annat: Kontrollera ålder för bioåldersgräns. Elever utökar med nestade satser för mer komplexitet, testar inputs och reflekterar över flödet i loggbok.

Planeringsmallar för Matematik