본문 바로가기
Front End/JavaScript

[JS] The Modern JavaScript Tutorial | JS Fundamentals | Loops: while and for

by 옐 FE 2021. 5. 18.

Repeat until the input is correct

(importance: 5)

Write a loop which prompts for a number greater than 100. If the visitor enters another number – ask them to input again.

The loop must ask for a number until either the visitor enters a number greater than 100 or cancels the input/enters an empty line.

Here we can assume that the visitor only inputs numbers. There’s no need to implement a special handling for a non-numeric input in this task.

 


 

이 문제로 꽤나 머릿속에서 씨름을 여러 번 했다. 

prompt 자체를 loop로 만들어야 하는 건 알겠는데 어떻게 구현해야 실행이 될 수 있을지 계속 끙끙.

그러다가 내가 쓴 코드가 데모랑 똑같이 실행되는 걸 보고 기뻤다. 

while(true) {
  let input = prompt("Enter a number greater than 100?", "");
  if(input > 100 || input == null || input == "") break;
}

 

 

그리고 이 튜토리얼에서 제시한 코드 답안은,

let num;

do {
  num = prompt("Enter a number greater than 100?", 0);
} while (num <= 100 && num);

do 안에 있는 코드를 일단 먼저 실행시키고 난 다음에, while 안에 있는 condition을 확인하는 방식으로 코드를 작성했더라. 분명 전에 한 번 하면서 이해하고 넘어갔다고 생각했는데, 다시 복습하는 과정에서 도무지 생각이 나지 않았던. while 안에 (&& num)까지 적어준 이유는 num이 취소를 눌러 null이거나 비어있는 string일 때 false로 만들기 위함이라 적혀있다. 

 

출처 : https://javascript.info/while-for#repeat-until-the-input-is-correct

댓글