我正在尝试运行该程序,但出现错误提示:“ break”未正确循环。我已经搜索了一些答案以及错误的原因,不能在循环语句外使用break。
但是正如您所看到的,我正在尝试在while循环中使用“ break”。我是编程的新手,所以请不要介意代码的简单性。
View
我希望在用户输入“ N”后关闭正在运行的程序。
答案 0 :(得分:2)
在这种情况下,您不必添加中断,键入N将覆盖while的条件。只需删除break语句即可。
答案 1 :(得分:0)
简而言之,在else
为x == "s"
的情况下,如果通过退出循环条件正常退出块,则执行False
语句。如果您break
或return
超出一个块,或者引发异常,则不会执行该操作。
因此,没有意义将break
语句放入循环的else
块中,因为break
语句旨在终止循环。
答案 2 :(得分:0)
“ break”只能在while循环内使用。您是否要停止执行程序?如果是这样,请使用exit()
例如:
import random
x = input("Rolar dado? Insira : S/N")
while x == "s":
print("Nº dado:", random.randrange(1,7))
x = input("Rolar dado? Insira : S/N")
else:
print("Input was not equal to s")
exit()
答案 3 :(得分:0)
当您退出缩进段时,while循环结束,因此,由于缩进发生了变化,else语句不在while语句中,这就是导致该问题的原因。
要获得所需的行为,您需要类似
while x == "s":
print("Nº dado:", random.randrange(1,7))
x = input("Rolar dado? Insira : S/N")
if x == "n":
break
答案 4 :(得分:0)
只要条件为真,就会固有地保持循环。这样,在您的示例中,循环将持续到x ==“ s”,然后它将自动中断。
#Execute code as long as x is "s"
while x == "s":
print("Nº dado:", random.randrange(1,7))
#Get new input for x
x = input("Rolar dado? Insira : S/N")
#At this point, we've reached end of while loop, it'll check the condition again
#If x is still "s", it'll start over at the print line
#If x is no longer "s" (our condition fails), it stops looping
仅当您需要其他退出条件时才需要中断,例如,如果您只想等待最多3个输入,然后中断,
i = 0
while x == "s":
i++
print("Nº dado:", random.randrange(1,7))
x = input("Rolar dado? Insira : S/N")
if i == 3:
break