帅昊昊昊 发表于 2020-4-26 11:44:22

在if语句判断后,怎样跳到下一个if判断

while 1:
    g.msgbox('嗨,欢迎进入李昊旻设计的系统^_^')
    cz = g.buttonbox(msg = '请选择登录还是注册', title = '登录系统',choices = ('登录','注册','退出'))
    if cz == '登录':
      load = look1()
      pd = g.multpasswordbox(msg = '请输入用户名和密码', title = '登录',fields = ('用户名','密码'))
      while pd not in load:
            if g.indexbox(msg = '用户不存在',title = '消息框',choices = ('再试一次','去注册')):
                cz = '注册'
                break
            else:
                pd = g.multpasswordbox(msg = '请输入用户名和密码', title = '登录',fields = ('用户名','密码'))

      break
      while pd != load]:
            if g.indexbox(msg = '密码不正确',title = '消息框',choices = ('再试一次','去注册')):
                break
            else:
                pd = g.multpasswordbox(msg = '请输入用户名和密码', title = '登录',fields = ('用户名','密码'))
      msg = '选择你要执行的操作'
      title = '通讯录'
      choices = ['查询联系人资料','插入新的联系人','删除已有的联系人','查看所有联系人','退出通讯录']
      choice = g.choicebox(msg, title, choices)
      g.msgbox('你的选择是:' + str(choice), '结果')
    elif cz == '注册':
      load = look1()
      new = g.multpasswordbox(msg = '请输入用户名和密码', title = '注册',fields = ('用户名','密码'))
      if new in load:
            g.buttonbox(msg = '用户已存在',title = '消息框',choices = ('返回登录','重新注册'))





如代码中,我在第一个if里选择了登录,然后第二个if判断用户名不存在,之后选择了去注册,我应该怎么写才能跳转至elif cz == 注册,也就是注册的代码中

Twilight6 发表于 2020-4-26 11:51:08

把elif改成if 就好,elif 的意思是只要前面有if 成立,就不会判断elif

while 1:
    g.msgbox('嗨,欢迎进入李昊旻设计的系统^_^')
    cz = g.buttonbox(msg = '请选择登录还是注册', title = '登录系统',choices = ('登录','注册','退出'))
    if cz == '登录':
      load = look1()
      pd = g.multpasswordbox(msg = '请输入用户名和密码', title = '登录',fields = ('用户名','密码'))
      while pd not in load:
            if g.indexbox(msg = '用户不存在',title = '消息框',choices = ('再试一次','去注册')):
                cz = '注册'
                break
            else:
                pd = g.multpasswordbox(msg = '请输入用户名和密码', title = '登录',fields = ('用户名','密码'))

      break
      while pd != load]:
            if g.indexbox(msg = '密码不正确',title = '消息框',choices = ('再试一次','去注册')):
                break
            else:
                pd = g.multpasswordbox(msg = '请输入用户名和密码', title = '登录',fields = ('用户名','密码'))
      msg = '选择你要执行的操作'
      title = '通讯录'
      choices = ['查询联系人资料','插入新的联系人','删除已有的联系人','查看所有联系人','退出通讯录']
      choice = g.choicebox(msg, title, choices)
      g.msgbox('你的选择是:' + str(choice), '结果')
    if cz == '注册':
      load = look1()
      new = g.multpasswordbox(msg = '请输入用户名和密码', title = '注册',fields = ('用户名','密码'))
      if new in load:
            g.buttonbox(msg = '用户已存在',title = '消息框',choices = ('返回登录','重新注册'))

帅昊昊昊 发表于 2020-4-26 12:01:22

Twilight6 发表于 2020-4-26 11:51
把elif改成if 就好,elif 的意思是只要前面有if 成立,就不会判断elif

还是不行的,要不你就复制那一小段修改好后发我看看,拜托了

sunrise085 发表于 2020-4-26 12:18:42

把第14行的 break改为continue

帅昊昊昊 发表于 2020-4-26 12:30:00

sunrise085 发表于 2020-4-26 12:18
把第14行的 break改为continue

谢谢,成功了

sunrise085 发表于 2020-4-26 12:32:11

帅昊昊昊 发表于 2020-4-26 12:30
谢谢,成功了

其实你的第9行,没用,可以删掉,因为continue之后,会在下一次循环中重新给cz赋值。
页: [1]
查看完整版本: 在if语句判断后,怎样跳到下一个if判断