Programming/Client

[Javascript] 유효한 숫자를 입력할 때까지 반복하는 함수

Jiwoo 2022. 3. 15. 15:05

문제

사용자가 유효한 숫자형 값을 입력할 때까지 계속 입력받는 함수 readNumber 를 만들어보세요.

반환되는 값은 꼭 숫자형 값이어야 합니다.

사용자가 아무 입력도 하지 않거나 '취소’를 누르면 입력받기를 멈추고 null을 반환하세요.

 

나의 실수

while만을 이용해서 만드려다보니 매우 복잡해졌다

너무 창피한 코드라서 올리지도 못하겠네 ㅠㅠ

 

해답

function readNumber() {
  let num;

  do {
    num = prompt("Enter a number please?", 0);
  } while ( !isFinite(num) ); // (isNaN(num))이라고 해도 됨

  if (num === null || num === '') return null; 

  return +num; // 숫자형 값이어야 하니 + 추가
}

alert(`Read: ${readNumber()}`);

먼저 num값을 입력 받고 시작하지 말고 선언해놓고 비워둔 다음에,
do while 문으로 한 번 실행하고 다음 동작 반복

 

  • 아무것도 입력x -> "" (빈 string)
  • '취소' 클릭 -> null

참고

https://ko.javascript.info/number

 

숫자형

 

ko.javascript.info