|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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('游戏结束。')
复制代码
|
|