Google Apps Script

Google Apps Script : while loop (while 반복문)

CosmosProject 2022. 11. 22. 20:23
728x90
반응형

 

 

 

while loop에 대해 알아봅시다.

 

 

Syntax

while (condition;) {
  ... do something ...
}

 

while 반복문은 간단합니다.

 

while 반복문이 실행된 후 매 loop의 단계마다 condition이 true인지 false인지를 테스트합니다.

 

어떠한 condition만 주면 이 condition이 true인 동안은 while 반복문이 실행되며

이 condition이 false가 된 순간 while loop가 종료됩니다.

 

 

 

예시를 봅시다.

 

function myFunction() {
  var i = 10;

  while (i <= 16) {
    Logger.log(i);
    i = i + 1;
  }
}



-- Result
10.0
11.0
12.0
13.0
14.0
15.0
16.0

 

- var i = 10;

먼저 변수 i를 만들고 10을 할당하여 초기화합니다.

 

 

- while (i <= 16)

while loop를 적어주고 조건은 i <= 16입니다.

즉, 이 while loop는 i <= 16이 true일 때에만 실행되며 false가 된 순간 while loop는 종료됩니다.

 

- Logger.log(i);
- i = i + 1;

반복문 안에서 i를 출력하고 i를 증가시킵니다.

 

 

 

이제 while loop가 어떻게 실행되었는지 그 과정을 봐봅시다.

 

먼저 i는 10으로 시작합니다.

i = 10이므로 i <= 16은 true이죠.

즉, while loop가 실행됩니다.

 

i = 10이므로 10이 출력되겠죠.

 

그리고 i = i + 1; 이 부분에 의해 i = 11이 됩니다.

 

여기까지 하면 while loop의 한 단계가 끝난겁니다.

 

 

그러면 다시 while loop의 조건체크부터 시작합니다.

i = 11입니다. i < = 16은 true겠네요.

while loop가 다시 시작됩니다.

11이 출력되고 i = i + 1; 이 부분에 의해 i는 12가 됩니다.

 

그리고 다시 while loop가 다시 실행됩니다.

 

이렇게 쭉 가다가 i = 16이 되었다고 합시다.

i = 16이면 i <= 16은 true네요.

그러면 while loop가 실행되고 16이 출력되며 i = i + 1에 의해 i = 17이 됩니다.

 

다음 while loop를 실행하려고보니 i = 17이죠.

따라서 i <= 16 이 조건이 false가 됩니다.

 

while loop가 종료됩니다.

 

그래서 출력된 숫자를 보면 10, 11, 12, 13, 14, 15, 16까지만 출력된 것이죠.

 

 

 

 

 

 

 

function myFunction() {
  var i = 10;

  while (i <= 16) {
    Logger.log(i);
    // i = i + 1;
  }
}

 

while loop는 기본적으로 loop의 실행 여부가 조건식에서 판별됩니다.

만약 위처럼 i = i + 1 이 부분을 없애버리면 i는 영원히 10일 것이고 i <= 16은 영원히 true일 것입니다.

이렇게되면 while loop는 무한하게 실행되는 무한루프에 걸리는 것이죠.

 

그래서 while loop를 이용할 때에는 무한루프가 걸리지 않도록 주의해야합니다.

(물론, 의도적으로 무한루프를 구현하는 경우도 있긴 합니다.)

 

 

 

 

 

 

728x90
반응형