일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Google Excel
- gas
- Mac
- Apache
- PANDAS
- matplotlib
- dataframe
- list
- Java
- Excel
- Github
- PySpark
- Kotlin
- Python
- SQL
- c#
- django
- hive
- math
- Redshift
- array
- Google Spreadsheet
- string
- google apps script
- GIT
- PostgreSQL
- Tkinter
- 파이썬
- numpy
- Today
- Total
달나라 노트
Google Apps Script : switch ~ case ~ default (switch 조건문) 본문
Google Apps Script : switch ~ case ~ default (switch 조건문)
CosmosProject 2022. 11. 22. 20:30
switch ~ case ~ default 구문은 if ~ else if ~ else 조건문을 좀 더 간결하게 사용할 수 있는 구문입니다.
간결하게 사용할 수 있다는 장점 때문에 특정 상황에서는 switch ~ case ~ default 구문이 if ~ else if ~ else 구문보다 좀 더 코드를 더 적게 써도 조건문을 구현할 수 있다는 장점이 있습니다.
반대로 간결하게 사용할 수 있기 때문에 더 복잡한 기능에 대한 구현은 switch ~ case ~ default 구문으로는 불가능한 경우도 있습니다.
Syntax
switch (value) {
case value1:
... do something 1 ...
case value2:
... do something 2 ...
case value3:
... do something 3 ...
...
default:
... do something n ...
}
switch ~ case ~ defualt 구문의 형태는 위와 같습니다.
하나씩 해석해봅시다.
- switch (value)
가장 먼저 어떤 값을 주어줍니다.
이 값이 바로 조건 체크의 대상 값이 될 것입니다.
- case value1:
- ... do something 1 ...
value == value1이라면 do something 1 부분이 실행됩니다.
- case value2:
- ... do something 2 ...
value == value2라면 do something 2 부분이 실행됩니다.
- case value3:
- ... do something 3 ...
value == value3라면 do something 3 부분이 실행됩니다.
이렇게 원하는 개수의 case 조건을 넣을 수 있습니다.
- default:
- ... do something n ...
만약 value가 위에서 체크했던 모든 case 구문의 값과 같지 않다면 default block에 있는 do something n이 실행됩니다.
실제 예시를 봅시다.
function myFunction() {
var i = 3;
switch (i) {
case 1:
Logger.log('i is 1');
break;
case 2:
Logger.log('i is 2');
break;
case 3:
Logger.log('i is 3');
break;
case 4:
Logger.log('i is 4');
break;
case 5:
Logger.log('i is 5');
break;
default:
Logger.log('i is out of range');
}
}
-- Result
i is 3
- var i = 3;
먼저 i를 3으로 지정합니다.
그리고 swtich 구문이 시작됩니다.
- switch (i) {
switch 구문의 대상 변수는 i입니다.
- case 3:
- Logger.log('i is 3');
i = 3이므로 당연히 case 3: 이 부분이 실행될 것입니다.
그래서 출력된 내용도 i is 3이라는 문장이 출력되었죠.
의도한대로 실행되었습니다.
근데 좀 이상하죠.
왜 각각의 case 구문에 break;를 두었을까요?
break는 break가 속한 코드블록을 중지하는 역할을 합니다.
break가 switch ~ case ~ default 구문에 속해있으므로 만약 여기에 있는 break가 실행되면 switch ~ case ~ default 구문이 중단되고 switch ~ case ~ defualt 구문을 벗어나 다음 코드가 실행됩니다.
근데 왜 break를 넣었을까요?
function myFunction() {
var i = 3;
switch (i) {
case 1:
Logger.log('i is 1');
case 2:
Logger.log('i is 2');
case 3:
Logger.log('i is 3');
case 4:
Logger.log('i is 4');
case 5:
Logger.log('i is 5');
default:
Logger.log('i is out of range');
}
}
-- Result
i is 3
i is 4
i is 5
i is out of range
위처럼 break를 모두 삭제하고 코드를 실행시켜보았습니다.
결과를 보면 일단 i is 3이라는 문장이 출력된 것 까지는 좋았는데
그 이후로 i is 4, i is 5, i is out of range 라는 문장까지 출력되었습니다.
이 말은 조건을 만족하는 case 3: 부분부터 그 이후까지 모두 출력이 된 거라고 볼 수 있죠.
이것은 case ~ switch ~ default 구문의 특성인데 case ~ switch ~ default 구문에서는 특정 조건을 만족하면 그 부분의 case 이후로 모든 코드를 실행합니다.
그래서 각각의 case구문마다 break;를 두어서 조건을 만족하는 case 구문이 실행된 후 swtich ~ case ~ default 구문이 종료되게 하여 그 이후의 case 들은 실행되지 않도록 하는 것이죠.
'Google Apps Script' 카테고리의 다른 글
Google Apps Script : 논리 연산자, Logical operator (&&, ||, !) (2) | 2022.11.22 |
---|---|
Google Apps Script : 비교 연산자, Comparison operator (==, ===, !=, !==, <, <=, >, >=) (0) | 2022.11.22 |
Google Apps Script : while loop (while 반복문) (0) | 2022.11.22 |
Google Apps Script : if ~ else if ~ else (조건문) (0) | 2022.11.22 |
Google Apps Script : for loop (for 반복문) (0) | 2022.11.22 |