【问题标题】:!= not working in while loop, causes infinite loop!= 不在 while 循环中工作,导致无限循环
【发布时间】:2018-10-08 09:19:51
【问题描述】:
 Name=input("Enter name")
 Age=int(input("Enter Age"))
 Gender=input("Enter Gender")
 while Gender!="M"or Gender!="F"or Gender!="T":
  print("try again")
  Gender=input("Enter Gender")
 print(Name,Age,Gender)

以上代码导致无限循环。

【问题讨论】:

  • 这是什么语言?请将其添加到标签列表中。请阅读how to ask good questions,以及this question checklist
  • 您的条件不适合您期望的输出。它说如果这些包含中的任何一个再次进入循环。示例:如果性别== M,那么它仍然进入循环,因为“M”!=“F”和“M”!=“T”的其他条件为真

标签: javascript loops while-loop


【解决方案1】:

请检查您的状况。这意味着

如果性别不是 M 性别不是 F 性别不是 T 然后继续循环

这意味着即使您输入“M”,它也会进入其他条件,因为它不是“F”。基本上操作员不是问题 - 这是条件。性别总是不同于其中之一。

您可以尝试将其切换为 AND(当这些都不为真时进行)

【讨论】:

    【解决方案2】:

    正如我在评论中所说,您的条件不适合您期望的输出。

    对于这种输出,您需要更改条件,这可以在列表的帮助下实现。 并且您的代码中也应该有一些输入验证,用于 int 检查年龄。

    您可以使用下面的代码

    Name=input("Enter name")
    
    #int validation check for Age variable START
    inl=True
    while(inl):
        try :
            Age=int(input("Enter Age"))
            inl=False
        except:
            print("Age must be a integer !")
    #int validation check for Age variable END
    
    Gender=input("Enter Gender")
    a=["M","F","T"]
    
    #condition change for Gender check
    while Gender.upper() not in a:
        print("Input A valid Gender like 'M' or 'F' or 'T'")
        Gender=input("Enter Gender")
    
    print(Name,Age,Gender)
    

    这会解决你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2016-02-14
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多