문제
사용자가 유효한 숫자형 값을 입력할 때까지 계속 입력받는 함수 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
'Programming > Client' 카테고리의 다른 글
[Javascript] 특정 문자 걸러내는 함수 만들기 (0) | 2022.03.16 |
---|---|
[Javascript] 문자열의 첫글자만 대문자로 변경 후, 출력 (0) | 2022.03.16 |
[Javascript] 메서드 호출 체이닝 구조 만들기 (0) | 2022.03.08 |
[Javascript] 거듭제곱 함수 구현 (0) | 2022.03.02 |
[Javascript] ?나 ||를 사용하여 함수 작성 (0) | 2022.03.02 |