• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

기회를 무한대로 주고, 정답이 나오면 멈출 수 있게 하려면 어떻게 해야하나요?

22.01.22 01:26 작성 조회수 308

1

while 문을 사용하여 만들고 싶은데, 

while user_input==number:

만으로 예제를 바꿔서 해보니 되지 않습니다.. 어떤 방식으로 해야할까요?! 

답변 1

답변을 작성해보세요.

0

질문에 주신 내용처럼 while 문에 그런식으로 조건을 사용하려면 

 

while user_input != number:

    (입력 값이 다른 경우 루프)

 

이렇게 처리를 해야합니다. while 은 반복 조건문이 들어가야 하는데 user_input == number 는 종료조건이 되므로 조건문에 부합하지 않을듯 합니다. 

그리고 위의 코드 처럼 while 문에 조건을 걸려면 while 문 진입전에 최초 input() 으로 입력을 받아야 user_input 값이 설정될테고 while 문 안으로 들어와서도 계속 input() 으로 입력을 받아야 하므로 그렇게 보기 좋은 코드는 아닐꺼라 생각됩니다.

 

import random
import os

cnt_try = 0
number = random.randint(1, 99)
os.system("cls")
print(f"1 부터 99 까지의 숫자를 맞춰보세요")
while True:
    user_input = int(input("몇일까요? "))
    cnt_try += 1
    if number == int(user_input):
        print(f"성공! {number} 이 맞습니다. {cnt_try} 회 시도")
        break
    elif user_input < number:
        print(f"{user_input} 보다 큰 숫자 입니다. {cnt_try} 회")
    elif user_input > number:
        print(f"{user_input} 보다 작은 숫자 입니다. {cnt_try} 회")

 

위 코드는 말씀하신데로 횟수 제한 없이 정답을 맞출때까지 무한 반복하게 수정된 코드 입니다.

확인해보시기 바랍니다.