马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如下代码中,第15行的break语句触发后继续执行了16行的mgsbox语句,并且开始了新一轮的while循环
import easygui as g
import random
result = random.randint(0, 10)
g.msgbox('猜一猜我现在想的数字', '数字小游戏','猜')
guess = g.enterbox('猜一猜我现在想的数字', '数字小游戏','输入一个整数')
while 1:
try:
guess = int(guess)
if guess > result:
guess = int(g.enterbox('大了,重新猜一个', '数字小游戏','输入一个整数'))
elif guess < result:
guess = int(g.enterbox('小了,重新猜一个', '数字小游戏','输入一个整数'))
elif guess == result:
break
g.msgbox('猜对了!')
except ValueError:
guess = g.enterbox('输入错误', '数字小游戏', '输入一个整数')
except TypeError:
break
g.msgbox('游戏结束。')
将代码15、16行改写为:
import easygui as g
import random
result = random.randint(0, 10)
g.msgbox('猜一猜我现在想的数字', '数字小游戏','猜')
guess = g.enterbox('猜一猜我现在想的数字', '数字小游戏','输入一个整数')
while 1:
try:
guess = int(guess)
if guess > result:
guess = int(g.enterbox('大了,重新猜一个', '数字小游戏','输入一个整数'))
elif guess < result:
guess = int(g.enterbox('小了,重新猜一个', '数字小游戏','输入一个整数'))
elif guess == result:
break
g.msgbox('猜对了!')
except ValueError:
guess = g.enterbox('输入错误', '数字小游戏', '输入一个整数')
except TypeError:
break
g.msgbox('游戏结束。')
则不会触发“猜对了”对话框,并且break语句可以正常跳出至“游戏结束”对话框。
请问在第一段代码中,break为什么没有跳出while循环呢?
你得continue一下,要不然一直在里边判断,就不会跳出循环了 import easygui as g
import random
result = random.randint(0, 10)
g.msgbox('猜一猜我现在想的数字', '数字小游戏','猜')
guess = g.enterbox('猜一猜我现在想的数字', '数字小游戏','输入一个整数')
while 1:
try:
guess = int(guess)
if guess > result:
guess = int(g.enterbox('大了,重新猜一个', '数字小游戏','输入一个整数'))
continue
elif guess < result:
guess = int(g.enterbox('小了,重新猜一个', '数字小游戏','输入一个整数'))
continue
elif guess == result:
break
g.msgbox('猜对了!')
except ValueError:
guess = g.enterbox('输入错误', '数字小游戏', '输入一个整数')
except TypeError:
break
g.msgbox('游戏结束。')
|