입력받은 변수가 한 번 더 나옵니다.

조회수 665회
a=(10, '홍')
b=(11, '임')
c=(12, '한')
dic = dict((a, b, c))
print('학생 정보:', dic)
while True:
 x=int(input('학번 입력:'))
 if x < 0:
  print('프로그램 종료')
  break
 elif x in dic:
  print(x, '번 학생은',dic[x])
  x=int(input('학번 입력:'))
 else:
  print('해당 학번의 학생 없음')
  x=int(input('학번 입력:'))

이렇게 코드를 입력하면 아래처럼 나옵니다. 자꾸 한 번 입력을 해야 원래 생각했던대로 나옵니다. 어디가 문제일까요?

<결과>

학생 정보: {191101: '홍길동', 191102: '임꺽정', 191103: '장길산'}

학번을 입력하세요 : 191101

191101 번 학생은 홍길동 입니다.

학번을 입력하세요 : 10

학번을 입력하세요 : 10

해당 학번의 학생이 없습니다.

학번을 입력하세요 : -1

학번을 입력하세요 : -1

프로그램을 종료합니다.

1 답변

  • WHILE 루프문이기 때문에 BREAK 되지 않는 한 계속 X 값을 입력받습니다. 그렇다면 ELIF나 ELSE에서 추가로 X를 입력받을 이유가 없습니다.

    a=(10, '홍')
    b=(11, '임')
    c=(12, '한')
    dic = dict((a, b, c))
    print('학생 정보:', dic)
    while True:
     x=int(input('학번 입력:'))
     if x < 0:
      print('프로그램 종료')
      break
     elif x in dic:
      print(x, '번 학생은',dic[x])
      #x=int(input('학번 입력:'))
     else:
      print('해당 학번의 학생 없음')
      #x=int(input('학번 입력:'))
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)