While loop och indentering
Hej!
det verkar som att det spelar roll för while hur print är indenterad. Jag tänkte att den ska skriva ut alternativ B, C ,D och E vilket den gör om print(i) står under while loopen ,men jag förstår inte varför svaret blir 9. Är det för att den tolkar som att vi ska summera ihop alla tal som uppfyller villkoret och sen printa ut slutgiltigt svar än om vi ska skriva ut varje tal för sig som jag tänkte mig?
Det spelar roll om print-satsen är identerad.
Eftersom den inte är det är den inte en del av while-loopen och därmed kommer enbart värdet på i efter den sista iterationen skrivas ut. Och denna har du ju visat att du vet är E.
Calle_K skrev:Det spelar roll om print-satsen är identerad.
Eftersom den inte är det är den inte en del av while-loopen och därmed kommer enbart värdet på i efter den sista iterationen skrivas ut. Och denna har du ju visat att du vet är E.
Asså facit säger att det är E men jag tänkte på B, C, D och E. Min tanke var såhär att den ska göra:
3
5
7
9
Okej jag förstår att den inte är en del av while loop funktion pga identeringen,men varför skriver den ut endast sista värdet ? Hur tänker programmet ? Tänker den att nu har vi fått värdet 9 och 9 är inte mindre än eller lika med 7 så vi skriver ut värdet ( den körs inte mer) ?
while-loopen körs klart först. Värdet på iterationsvariabeln i kommer få det värde som den ges i sista iterationen, vilket är 9. Detta värde skrivs sedan ut.
Calle_K skrev:while-loopen körs klart först. Värdet på iterationsvariabeln i kommer få det värde som den ges i sista iterationen, vilket är 9. Detta värde skrivs sedan ut.
Jag förstår att while-loopen kommer köras klart tills villkoret är uppfylld , men jag tänker att den inte kommer köras vid sista iterationen då i=9 för 9 är inte mindre än eller lika med 7 , det stämmer eller?
Nej, den kommer inte köras när i är 9.
thedifference skrev:Nej, den kommer inte köras när i är 9.
Okej det var en bra illustration av koden. Tack för det! Så om i <=7 och det är sant så ökar den med 2 och sen går den tillbaka till villkoret med det nya värdet som i har fått och kollar om i<=7 , annars om svaret är nej så skriver den ut värdet på i ?
Ja. Eller egentligen är det att om villkoret inte uppfylls så går den bara ur while loopen och vidare med koden, vilket råkar vara en print. Kunde gjort det där schemat lite bättre.
thedifference skrev:Ja. Eller egentligen är det att om villkoret inte uppfylls så går den bara ur while loopen och vidare med koden, vilket råkar vara en print. Kunde gjort det där schemat lite bättre.
Jaha okej. Du kunde ha gjort ett schema när print finns med under while loop och utanför while loop. Det är 2 scenarios som jag ser på det.
En scenario där print finns med i while loop indenterad och den skriver
3
5
7
9
En annan scenario där print är inte indenterad och den skriver ut bara sista iterationsvärdet
Om printen var med i while-loopen hade schemat sett ut så här:
thedifference skrev:Om printen var med i while-loopen hade schemat sett ut så här:
Tack för schemat!