-3
print("What's your name?")
name = input('Answer: ')

while False:
    if name == 'joshua':
        print("you're right")
    else:
        print("you're wrong")

input('the end\n')
Scott Hunter
  • 48,888
  • 12
  • 60
  • 101
  • set a boolean flag and make that the condition of your while loop. i.e `incorrectAnswer = true; while incorrectAnswer: if name == 'joshua': incorrectAnswer = false` – Jeremy Fisher Feb 20 '20 at 19:16
  • 3
    `while False:` will never execute at all. – Barmar Feb 20 '20 at 19:17
  • Note: Avoid infinite loops. Add another condition to exit the loop. In this case maybe if guesses > 20. – Brian Feb 20 '20 at 19:27

5 Answers5

1
  1. With while False:, you never get inside the loop at all
  2. Your problem with the loop body isn't getting back to the top; it is that you haven't specified a way to exit the loop.
Scott Hunter
  • 48,888
  • 12
  • 60
  • 101
1

You can set a boolean variable outside of the loop which will run basically forever until the answer is correct. You need to ask for input again in each iteration:

print("What's your name?")

unanswered = True

while unanswered:
    name = input('Answer: ')
    if name == 'joshua':
        unanswered = False
        print("you're right")
    else:
        print("you're wrong")

input('the end\n')
Daan
  • 12,099
  • 6
  • 34
  • 51
0

Use while True: to loop infinitely, then break out of the loop when the answer is correct.

while True:
    print("What's your name?")
    name = input('Answer: ')
    if name == 'joshua':
        print("you're right")
        break
    else:
        print("you're wrong")
Barmar
  • 741,623
  • 53
  • 500
  • 612
0

Use break and continue inside your while loop. Control flow

while True:
    if name != "Joshua":
        continue
    break
Errol
  • 600
  • 4
  • 16
0

That loop will never enter because its condition is always False. You'll need an extra variable to keep track. Start off by setting correct = False above the loop and changing your loop condition to not correct. Then, if they are correct, set correct = False.

You could also break on a right answer with True for the loop condition, but since I'm guessing you are new to programming, learning more traditional control flow would probably be better.

Ben
  • 2,422
  • 2
  • 16
  • 23