我正在跟踪有关while循环的教程,该教程以数字猜谜游戏为例。尝试将循环设置为在三次不正确的尝试后中断,并显示“您输了”。我想添加另一个if语句,以便在每次不正确的猜测后打印(重试),但是当我这样做时,循环在第一次猜测后中断,而不是运行所有三个尝试。在添加第二条if语句之前,程序正确运行了整个循环。
Tweak.xm:92:14: error: cannot initialize a variable of type 'UIImageView *' with an
rvalue of type 'NSArray *'
UIImageView *logo =[[NSArray alloc] initWithObjects:image1,image2,image3, nil];
据我了解,中断将忽略if语句,仅遵循while命令设置的参数。我不明白为什么在第一次尝试后添加额外的if语句会杀死循环。
答案 0 :(得分:0)
您放错了break
。当有正确的猜测时,您应该从循环中中断,然后在错误的猜测中重试循环。
secret_number = 6
guess_count = 0
guess_limit = 3
while guess_count < guess_limit:
guess = int(input('Guess the secret number! '))
guess_count += 1
if guess == secret_number:
print('...You Won!')
break
if guess != secret_number and guess_count != guess_limit:
print('Nope. Try again!')
else:
print('...Sorry, you failed.')
答案 1 :(得分:0)
与C中一样,break语句脱离了最里面的for或while循环。 https://docs.python.org/3/tutorial/controlflow.html
使用:
while guess_count < guess_limit:
....
if guess != secret_number:
print('Nope. Try again!')
break
您实际上是在说:猜错时退出while循环。