2017-02-28 1 views
-2

Kann mir bitte jemand Details zu diesem Problem geben?Python Break-Anweisung Details

for i in range(1,10): 
     if i == 5: 
      break 
     print("number is ", i) 


Output: 
number is 1 
number is 2 
number is 3 
number is 4 

Meine Frage ist: Warum nicht 5 ?? Ich habe hier i == 5 gesagt, das bedeutet, wenn ich Wert 5 ist, dann sollte es brechen und Ergebnis 5 geben.

now, if i > 5: 
     break 
    print(i) 
Output: 
    number is 1 
    number is 2 
    number is 3 
    number is 4 
    number is 5 

hier 5> 5 ist es nicht wahr. Also was ist damit?

Und letzte, was, wenn Struktur

for i in range(1,10): 
print(i) 
if i < 5: 
    break 

Output: only 1 

Frage: das Ergebnis sollte mindestens 1 bis 4 kommen. Aber warum nicht?

Danke an alle. Ich hoffe du kannst es verstehen und gib mir Details zu meinen Fragen.

+0

hilft Es ist, weil Sie ' break' es vor 'print' Anweisung – anon

+0

Richtig, aber hier ist Anthere Problem ,,, lassen, wenn ich> 5: break Jetzt erhalten Sie die Nummer ist 5 das bedeutet, es wird falsch, wegen 5> 5, falsch. was ist mit dir denken, Kumpel ?? –

+0

Kannst du nicht einfach das Unterrichtsmaterial lesen, das diese Aufgabe begleitet? – TigerhawkT3

Antwort

4

Der Grund, warum es 5 nicht gedruckt hat, ist, weil Sie die Schleife bremsen, bevor es zu print("number is ", i) kam.

for i in range(1,10): 
     if i == 5: #when i is 5 this will be true 
      break #break the loop exits the loop 
     #----------------------This is not run when i==5 because the loop already ended 
     print("number is ", i) 

, wenn Sie 5

for i in range(1,10): 

    print("number is ", i) #put this in front 
    if i == 5: #when i is 5 this will be true 
      break #break the loop exits the loop 

Und als Randnotiz drucken wollen: range(1,10) ist eigentlich [1,2,3,4,5,6,7,8,9] und zehn ist nicht enthalten, da Python der letzten

Um OP Kommentar überspringt:

for i in range(1,10): 

    if i > 5: #when i is 5 this will be false, so the loop doesn't break 
      break #break the loop when i > 5 (ie. 6) so now the print() isn't reached and will not print 6 

    print("number is ", i) #since the loop didn't break when i is 5, it printed i 

Für Ihre anderen zwei neue Beispiele:

for i in range(1,10): 
    if i > 5: 
     break #exits here skips the print since it's after this 
    print(i) #the print statement is here so when i > 5 this is not reached 
#on the other hand: 
for i in range(1,10): 
    print(i) #the print statement is in front of the break statement so now it will print 6 too since the loop hasn't break yet 
    if i > 5: 
     break #exits here after the print() 
#output also includes 6 

Und letzte, was, wenn Struktur

for i in range(1,10): 
    print(i) #only 1 got printed since the loop break before it get to 2 
    if i < 5: #when i < 5 so it breaks in the first loop when i is 1 
     break #exits the loop 

Sie vielleicht this und sehen überprüfen, ob es

+0

Hmm, vielen Dank für Ihren wertvollen Kommentar, aber ich habe eine andere Frage. wenn i> 5: brechen print (i) Ausgang: 1,2,3,4,5 hier ist 5> 5. Falsch. Es ist nicht wahr . Warum habe ich dieses Ergebnis gesehen? Ich fühle mich total chaotisch :( –

+0

tun die Meinung, es in Ihrem ursprünglichen Beitrag als Bearbeitung schreiben? Es ist schwer, es in den Kommentaren zu lesen @ VubonRoy – abccd

+0

Ich bearbeitet meine Frage. Jeder Weg, danke für Ihre Hilfe :) –

1

Bei der i = 5-Iteration übergeben Sie die Bedingung Ihres if-Tests und führen den then-Block Ihrer Anweisung aus, der aus break besteht. Die break-Anweisung bewirkt, dass Sie die Schleife verlassen. Die print-Anweisung ist Teil des Schleifenkörpers und wird nie in der Iteration mit i = 5 erreicht.