首页 > 解决方案 > 如何修复这个while循环,让它在应该的时候中断?

问题描述

因此,当我用它回答时,l[0]它不会从 y 循环中跳出,但是当我用它回答时,l[1]它会跳出 while 循环。我怎样才能使这两个选项都让我脱离 y 循环

while y == True:
  B=input("Klockan är 07:00 och du börjar snart, vad för slags frukost skulle du vilja
           ha? smörgås eller pannkakor: ")
  if B == l[0]:
    y=False
    b=True
    while b == True:
      D=input("utifrån det du har valt skulle jag villa rekommendera juice eller mjölk
               vad vill du ha?")
      if D == m[0]:
        print ("ok, ha en trevlig måltid")
        break
      if D == m[1]:
        print ("ok, ha en trevlig måltid")
        b=False
        break
        y=False
      else:
        b=True
        print ("Du har inte svarat på vilken drick du vill ha eller så har du använt
               stora bokstäver, var vänlig att svara igen")
  if B == l[1]:
    ö=True
    y=False
    while ö == True:
      D=input("utifrån det du har valt skulle jag villa rekommendera saft eller vatten
               vad vill du ha?")
      if D == m[2]:
        print ("ok, ha en trevlig måltid")
        ö=False
        break
        y=False
      if D == m[3]:
        print ("ok, ha en trevlig måltid")
        ö=False
        break
        y=False
      else:
        ö=True
        print ("Du har inte svarat på vilken drick du vill ha eller så har du använt
                stora bokstäver var vänlig svara igen
  else:
    y=True
    print ("Du har inte svarat på vilken rätt du vill ha eller så har du använt stora
            bokstäver, var vänlig att svara igen")

标签: pythonwhile-loop

解决方案


Easy, you need to delete one line. Your program after finishing l[0] the l[1] will be false so it will run the else {} and it will set y=true

I hope that makes sense.

else:

    y=True < ====== delete this
    print ("Du har inte svarat på vilken rätt du vill ha eller så har du använt stora 
            bokstäver, var vänlig att svara igen")`

Also you can fix your program by adding else if B == l[1]: instead of if B == l[1]:


推荐阅读