일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- c#
- django
- Github
- Google Spreadsheet
- Redshift
- Apache
- SQL
- Java
- dataframe
- list
- hive
- 파이썬
- Python
- Google Excel
- Kotlin
- PostgreSQL
- GIT
- google apps script
- string
- matplotlib
- PANDAS
- gas
- PySpark
- Mac
- Tkinter
- math
- array
- Excel
- numpy
- Today
- Total
달나라 노트
Google Apps Script : while loop (while 반복문) 본문
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를 이용할 때에는 무한루프가 걸리지 않도록 주의해야합니다.
(물론, 의도적으로 무한루프를 구현하는 경우도 있긴 합니다.)