Programming/Client

[Javascript] 사용자가 유효한 값을 입력할 때까지 프롬프트 창 띄우기

Jiwoo 2022. 2. 28. 16:43

문제

사용자가 100보다 큰 숫자를 입력하도록 안내하는 프롬프트 창을 띄워보세요. 사용자가 조건에 맞지 않은 값을 입력한 경우 반복문을 사용해 동일한 프롬프트 창을 띄워줍시다.

사용자가 100을 초과하는 숫자를 입력하거나 취소 버튼을 누른 경우, 혹은 아무것도 입력하지 않고 확인 버튼을 누른 경우엔 더는 프롬프트 창을 띄워주지 않아도 됩니다.

사용자가 오직 숫자만 입력한다고 가정하고 답안을 작성하도록 해봅시다. 숫자가 아닌 값이 입력되는 예외 상황은 처리하지 않아도 됩니다.

나의 풀이

let value = prompt("100 이상의 숫자를 입력해주세요.", "");

while (value < 100) {
  if (value == "" || value == null) break;
  alert("wrong number!");
  value = prompt("100 이상의 숫자를 입력해주세요.", "");
}

해답

let num;

do {
  num = prompt("100을 초과하는 숫자를 입력해주세요.", 0);
} while (num <= 100 && num);
  1. do ... while을 이용해서 최초 명령문으로 숫자를 입력 받음
  2. while 조건문 설정
    • 숫자가 100이하 일 때 :num <= 100
    • && num아무것도 입력 x : ""(빈 string)
      취소 클릭 : null
      -> falsy이므로 조건문에서 && 으로 묶일 시, false
      -> 두 경우에는 반복문에서 빠져나간다

효율적 코드 작성을 배워가는 과정

6줄의 코드가 4줄로 줄어든다.