mysum=0
for i in range(5,11,2):
mysum += i
if mysum ==5:
break
mysum += 1
print(mysum) // always prints: 5
我不明白为什么结果只是“ 5”。 我认为,如果 if 语句的条件为False,那么它将跳过代码块。让我解释一下我如何理解此代码。
if
语句将为true
。因此,它进入了代码块,并且有break
语句,因此它退出了代码块。在这种情况下,print(mysum)
的结果为5
。if
语句将为false
。因此,它跳过代码块,并打印print(mysum)
或7
的结果9
。但是结果只有5
。
谢谢。
答案 0 :(得分:3)
如果您只想进行下一次迭代,而不是中断循环,则应使用continue
关键字。
for x in xs:
if x == target:
break
f(x)
一旦等于target
,将停止执行,并对其之前的每个f(x)
运行x
,而
for x in xs:
if x == target:
continue
f(x)
在f(x)
中,每个x
都将不等于xs
运行target
。
答案 1 :(得分:0)
#1是正确的,如果对i = 7和i = 9执行循环,则#2几乎为真,但是在代码第一次执行print
之后,它就完成了。
这将提供您描述的输出:
for i in range(5, 11, 2):
mysum = i
print(mysum)
答案 2 :(得分:-1)
mysum=0
for i in range(5,11,2):
mysum += i
if mysum ==5:
mysum += 1
break
print(mysum)=5
break
用于过早停止正在进行的循环。
调用它时,它将停止重复循环,这意味着mysum
将永远不会返回True
布尔值,最终也不会mysum+=1