Hur kan detta vara fel?
Kan även lägga till att det står längst ner:
anm: Uppgifter där en for-snurra kan användas kan ibland oxå lösas effektivt med vektorberäkningar, utan någon snurra. Avgör vilka av uppgifterna som lämpar sig för det, och fundera på hur det isåfall skulle kunna göras.
Har jag kryssat i för många? Jag har tänkt vad att det är möjligt (vilket oxå står i frågan) att använda while sats och for sats även om det inte är lämpligt.
Tänker att while-satsen även kan användas för alternativ 4.
for-satsen behöver inte användas för alternativ 2.
for loop är bra när du vet hur många iterationer du ska köra. while loop är bra när du inte vet hur många iterationer.
exempelvis:
Om du ska beräkna en geometrisk summa är det att summera ett fixt antal termer. Så då är en for-loop bra.
När du ska avgöra hur många gånger ett tal är delbart med 3 kan du ju dela talet med 3 tills det inte går längre. Och det vet du inte hur många gånger du kan göra (det är ju uppgiften att avgöra) så därför är en while-loop bra
Vad är det som är fel nu då
Som jag sa i mitt svar tidigare, en geometrisk summa består av ett bestämt antal termer, så eftersom du vet hur många iterationer som du ska genomföra är det lämpligt att använda en.....?
Hur tar du fram det sjunde elementet i en vektor?
Nej den ska det givetvis inte vara men fick en fin beskrivning förut.
Det är nästan korrekt: While när man kör ett på förhand okänt antal varv, For när man vet antalet varv i förväg.
Fråga 1:
Alt 1: Du vet antalet element i vektorn, alltså for-loop
Alt 2: Du vet inte antalet termer i förväg, alltså while-loop
Alt 3: Du vet antalet termer i förväg, alltså for-loop
Alt 4: Du vet inte antalet gånger du kan dela i förväg, alltså while-loop
Alt 5: Ingen loop alls skulle jag säga
Fråga 2:
Alt 1: Du vet vektorernas storlekar i förväg, alltså for-loop
Alt 2: Ingen loop alls behövs för detta, bara att indexera direkt
Alt 3: Görs normalt med en "while True:"-loop, men undvik som pesten
Alt 4: Du vet inte antalet tal i förväg, alltså while-loop
Alt 5: Du vet antalet upprepningar i förväg, alltså for-loop
"... undvik som pesten" är inte alls sant. Oändliga loopar är mycket vanliga och användbara. Visserligen brukar man ha ett sätt att bryta loopen, men inte alltid. Det rådet gäller primärt för nybörjar isf. Ett bra exempel är inbygdda system. Du måste man alltid ha en main loop. Samma sak ifall du programmerar ett spel, då kallas det game loop etc.
Du kan istället tänka i banorna:
Finns det en vettig anledning till varför jag skulle vilja ha en oändlig while loop? I ditt fall är svaret förmodligen Nej i 9/10 fall.