9 svar
60 visningar
destiny99 behöver inte mer hjälp
destiny99 Online 8065
Postad: 16 dec 09:52 Redigerad: 16 dec 09:56

hur många gånger skriver den ut varv?

i=1
while True:
    print("varv")
    i=i+1
    if i>10:
        break 
    if i==5:
        continue 
    i=i+2

 Hej! Jag är med på att koden skriver ut varv 5 gånger efter att den nått i==5: men sen förstår jag inte varför den inte skriver ut varv upp 7 gånger iaf tills i>10: är uppnådd eller något. Liksom den borde väl fortsätta med att lägga 5 med 2 sen skriva ut varv då i=7 och sen varv då i=9 och till slut får vi i=11 då den går ut ur loopen.

Jag tänker mig såhär enligt min notering.

Ett tips är att instrumentera koden, så det är lätt att se vad som händer:

i=1
while True:
    print("varv: ", i)
    i=i+1
    print ("i+=1 -> ", i)
    if i>10:
        print ("i>10 -> break")
        break 
    if i==5:
        print ("i==5 -> continue")
        continue 
    i=i+2
    print ("i+=2 -> ", i)

När jag kör den skrivs följande ut:

varv:  1
i+=1 ->  2
i+=2 ->  4
varv:  4
i+=1 ->  5
i==5 -> continue
varv:  5
i+=1 ->  6
i+=2 ->  8
varv:  8
i+=1 ->  9
i+=2 ->  11
varv:  11
i+=1 ->  12
i>10 -> break


** Process exited - Return Code: 0 **
destiny99 Online 8065
Postad: 16 dec 10:35 Redigerad: 16 dec 10:37
sictransit skrev:

Ett tips är att instrumentera koden, så det är lätt att se vad som händer:

i=1
while True:
    print("varv: ", i)
    i=i+1
    print ("i+=1 -> ", i)
    if i>10:
        print ("i>10 -> break")
        break 
    if i==5:
        print ("i==5 -> continue")
        continue 
    i=i+2
    print ("i+=2 -> ", i)

När jag kör den skrivs följande ut:

varv:  1
i+=1 ->  2
i+=2 ->  4
varv:  4
i+=1 ->  5
i==5 -> continue
varv:  5
i+=1 ->  6
i+=2 ->  8
varv:  8
i+=1 ->  9
i+=2 ->  11
varv:  11
i+=1 ->  12
i>10 -> break


** Process exited - Return Code: 0 **

Men hur ska man komma ihåg hur allt sker i ordning  på ett prov utan att testköra? När når den i=i+2? Är det när första villkoret och andra villkoret inte är uppfyllda? Jag ser också att efter continue så är vi tillbaka i=i+1 utan att utföra i=i+2 , varför går den inte dit?

Nej, då får man förstås exekvera den i huvudet, eller med penna/papper. 

Nu ser du ju i alla fall vad som händer i just den koden du postade.

destiny99 Online 8065
Postad: 16 dec 10:39
sictransit skrev:

Nej, då får man förstås exekvera den i huvudet, eller med penna/papper. 

Nu ser du ju i alla fall vad som händer i just den koden du postade.

Jo men den ska jag komma ihåg och titta igenom. 

sictransit 1122 – Livehjälpare
Postad: 16 dec 10:39 Redigerad: 16 dec 10:40
destiny99 skrev:
sictransit skrev:

Ett tips är att instrumentera koden, så det är lätt att se vad som händer:

i=1
while True:
    print("varv: ", i)
    i=i+1
    print ("i+=1 -> ", i)
    if i>10:
        print ("i>10 -> break")
        break 
    if i==5:
        print ("i==5 -> continue")
        continue 
    i=i+2
    print ("i+=2 -> ", i)

När jag kör den skrivs följande ut:

varv:  1
i+=1 ->  2
i+=2 ->  4
varv:  4
i+=1 ->  5
i==5 -> continue
varv:  5
i+=1 ->  6
i+=2 ->  8
varv:  8
i+=1 ->  9
i+=2 ->  11
varv:  11
i+=1 ->  12
i>10 -> break


** Process exited - Return Code: 0 **

Men hur ska man komma ihåg hur allt sker i ordning  på ett prov utan att testköra? När når den i=i+2? Är det när första villkoret och andra villkoret inte är uppfyllda? Jag ser också att efter continue så är vi tillbaka i=i+1 utan att utföra i=i+2 , varför går den inte dit?

Den når bara i=i+2 om den tar sig förbi de två kontrollerna i>10 och i==5.

Continue avbryter exekveringen av koden (inne i loopen) och börjar om från while.

Break avbryter hela loopen och du ramlar ur programmet.

destiny99 Online 8065
Postad: 16 dec 10:43
sictransit skrev:
destiny99 skrev:
sictransit skrev:

Ett tips är att instrumentera koden, så det är lätt att se vad som händer:

i=1
while True:
    print("varv: ", i)
    i=i+1
    print ("i+=1 -> ", i)
    if i>10:
        print ("i>10 -> break")
        break 
    if i==5:
        print ("i==5 -> continue")
        continue 
    i=i+2
    print ("i+=2 -> ", i)

När jag kör den skrivs följande ut:

varv:  1
i+=1 ->  2
i+=2 ->  4
varv:  4
i+=1 ->  5
i==5 -> continue
varv:  5
i+=1 ->  6
i+=2 ->  8
varv:  8
i+=1 ->  9
i+=2 ->  11
varv:  11
i+=1 ->  12
i>10 -> break


** Process exited - Return Code: 0 **

Men hur ska man komma ihåg hur allt sker i ordning  på ett prov utan att testköra? När når den i=i+2? Är det när första villkoret och andra villkoret inte är uppfyllda? Jag ser också att efter continue så är vi tillbaka i=i+1 utan att utföra i=i+2 , varför går den inte dit?

Den når bara i=i+2 om den tar sig förbi de två kontrollerna i>10 och i==5.

Continue avbryter exekveringen av koden (inne i loopen) och börjar om från while.

Break avbryter hela loopen och du ramlar ur programmet.

Okej. Menar du att continue utför inte utskrift av koden medan loopningen körs ? Jag trodde continue fortsatte bara som namnet säger. Vad break gör är jag med på. 

destiny99 skrev:
sictransit skrev:
destiny99 skrev:
sictransit skrev:

Ett tips är att instrumentera koden, så det är lätt att se vad som händer:

i=1
while True:
    print("varv: ", i)
    i=i+1
    print ("i+=1 -> ", i)
    if i>10:
        print ("i>10 -> break")
        break 
    if i==5:
        print ("i==5 -> continue")
        continue 
    i=i+2
    print ("i+=2 -> ", i)

När jag kör den skrivs följande ut:

varv:  1
i+=1 ->  2
i+=2 ->  4
varv:  4
i+=1 ->  5
i==5 -> continue
varv:  5
i+=1 ->  6
i+=2 ->  8
varv:  8
i+=1 ->  9
i+=2 ->  11
varv:  11
i+=1 ->  12
i>10 -> break


** Process exited - Return Code: 0 **

Men hur ska man komma ihåg hur allt sker i ordning  på ett prov utan att testköra? När når den i=i+2? Är det när första villkoret och andra villkoret inte är uppfyllda? Jag ser också att efter continue så är vi tillbaka i=i+1 utan att utföra i=i+2 , varför går den inte dit?

Den når bara i=i+2 om den tar sig förbi de två kontrollerna i>10 och i==5.

Continue avbryter exekveringen av koden (inne i loopen) och börjar om från while.

Break avbryter hela loopen och du ramlar ur programmet.

Okej. Menar du att continue utför inte utskrift av koden medan loopningen körs ? Jag trodde continue fortsatte bara som namnet säger. Vad break gör är jag med på. 

Ja, continue avbryter iterationen och påbörjar nästa (varv): Python continue Keyword

destiny99 Online 8065
Postad: 16 dec 11:00
sictransit skrev:
destiny99 skrev:
sictransit skrev:
destiny99 skrev:
sictransit skrev:

Ett tips är att instrumentera koden, så det är lätt att se vad som händer:

i=1
while True:
    print("varv: ", i)
    i=i+1
    print ("i+=1 -> ", i)
    if i>10:
        print ("i>10 -> break")
        break 
    if i==5:
        print ("i==5 -> continue")
        continue 
    i=i+2
    print ("i+=2 -> ", i)

När jag kör den skrivs följande ut:

varv:  1
i+=1 ->  2
i+=2 ->  4
varv:  4
i+=1 ->  5
i==5 -> continue
varv:  5
i+=1 ->  6
i+=2 ->  8
varv:  8
i+=1 ->  9
i+=2 ->  11
varv:  11
i+=1 ->  12
i>10 -> break


** Process exited - Return Code: 0 **

Men hur ska man komma ihåg hur allt sker i ordning  på ett prov utan att testköra? När når den i=i+2? Är det när första villkoret och andra villkoret inte är uppfyllda? Jag ser också att efter continue så är vi tillbaka i=i+1 utan att utföra i=i+2 , varför går den inte dit?

Den når bara i=i+2 om den tar sig förbi de två kontrollerna i>10 och i==5.

Continue avbryter exekveringen av koden (inne i loopen) och börjar om från while.

Break avbryter hela loopen och du ramlar ur programmet.

Okej. Menar du att continue utför inte utskrift av koden medan loopningen körs ? Jag trodde continue fortsatte bara som namnet säger. Vad break gör är jag med på. 

Ja, continue avbryter iterationen och påbörjar nästa (varv): Python continue Keyword

Yes ok!

thedifference 409
Postad: 16 dec 17:23

Svara
Close