鱼C论坛

 找回密码
 立即注册
查看: 1791|回复: 4

[已解决]课后35讲,这里的while和break该怎么理解?

[复制链接]
发表于 2018-4-10 17:08:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目如下:

1.png

答案代码如下:

  1. import easygui as g

  2. msg = "请填写以下联系方式"
  3. title = "账号中心"
  4. fieldNames = [" *用户名", " *真实姓名", "  固定电话", " *手机号码", "  QQ", " *E-mail"]
  5. fieldValues = []
  6. fieldValues = g.multenterbox(msg,title, fieldNames)

  7. while 1:
  8.     if fieldValues == None:
  9.         break
  10.     errmsg = ""
  11.     for i in range(len(fieldNames)):
  12.         option = fieldNames[i].strip()
  13.         if fieldValues[i].strip() == "" and option[0] == "*":
  14.             errmsg += ('【%s】为必填项。\n\n' % fieldNames[i])
  15.     if errmsg == "":
  16.         break
  17.     fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)

  18. print("用户资料如下:%s" % str(fieldValues))
  19.    
复制代码


代码中11行的break,我个人理解是,如果用户什么都没有输入,那就会退出while循环,这样的话底下的那么多判断岂不是没意义了。

事实证明,在实际run这个代码的时候,如果第一次什么都没有输入,fieldvalues的值为none时,它运行的挺好的,并没break啊,反而会将errmsg里显示出应该提示的文字,如下:

2.png

这让我十分怀疑自己的逻辑是不是错了,因为如果,break,while内容全部终止了啊,更别提还会有errmsg的值啊。。。求解
最佳答案
2018-4-10 19:11:47
if fieldValues == None:
        break

fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
if fieldValues == None: #意思是 你点了Cancel
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-10 17:59:33 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-10 19:10:34 | 显示全部楼层
哪里的while 和break都是一个意思。
如果把while这样的循环比做一个人不停在走圆圈。那么当break时,就意味着这个人退出走圆圈了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 19:11:47 | 显示全部楼层    本楼为最佳答案   
if fieldValues == None:
        break

fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
if fieldValues == None: #意思是 你点了Cancel
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-19 20:46:02 | 显示全部楼层
大致看懂了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-10 08:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表