JavaScript 조건문과 반복문
반복문
공통 키워드
- break : 현재 실행 중인 반복문 종료.
- continue : 현재 사이클 생략하고 다음 사이클로 넘어감
for
- 반복의 기준이 되는 변수(주로 인덱스)를 활용하여 특정 구현부를 반복하고자 할 때 사용
for([변수 선언 및 초기화]; [반복 조건]; [변수 가감 및 할당]){
[구현부]
}
1. for 반복문을 위한 변수를 선언 혹은 초기화한다.
2. 반복 조건이 참(true)인지 확인
a. 반복 조건이 참이면 [구현부]를 1회 실행하고 3으로 이동
b. 반복 조건이 거짓이면 for 반복문 종료
3. 변수 가감 및 할당을 실시하고 2로 돌아감
1부터 5까지의 정수를 출력하기 위해 아래와 같이 작성할 수 있다.
for(let i = 1; i <=5; i++){
console.log(i);
}
for... in
반복할 수 있는 대상(대표적으로 배열)이 가지고 있는 인자의 인덱스에 대해 반복하기 위해 사용
for ([변수 혹은 상수 선언] in [반복 대상]){
[구현부]
}
for... of
반복할 수 있는 대상(대표적으로 배열)이 가지는 인자의 값에 대해 반복하기 위해 사용한다.
순번에 대한 변수가 필요 없을 경우 순번 범위 오류 및 가독성 향상 등을 위해 가능한한 for...of 반복문을 사용하는 것이 좋다.
for([변수 혹은 상수 선언] of [반복 대상]){
[구현부]
}
while
주어진 조건이 참일 때(횟수와 관계 없이) 구현부를 실행
while([조건]){
[구현부]
}
만약 [조건]이 항상 참이거나, 거짓으로 변하는 경우의 수가 없다면, 무한 반복
do... while
while과 유사하나 조건과 관계 없이 최초 한 번은 반드시 구현부 실행
do {
[구현부]
} while([조건]);
만약 [조건]이 항상 참이거나, 거짓으로 변하는 경우의 수가 없다면, 무한 반복
조건문
if
주어진 조건이 참일 때만 구현부 실행
if([조건]){
[구현부]
}
if/else
- else문은 앞서 제시된 모든 조건이 거짓일 때 최종적으로 실행항 구현부를 위해 사용
- else문은 if문 당 반드시 한 개 이하만 존재해야 함
- else문은 if문의 마지막 구문이어야 함
- 단순 if-else문은 주어진 두 개의 구현부 중 하나가 반드시 실행
if([조건]){
[구현부]
}else{
[구현부]
}
if/else if
- else if문은 선행하는 조건이 거짓일 때 부차적인 조건을 추가하여 조건적으로 구현부를 실행하고자 할 때 사용
- else if 문은 하나의 if 문에 여러개가 사용될 수 있다.
- else if 문의 조건이 참이라 하더라도 선행하는 if문 혹은 else if 문의 조건이 참이어서 선행하는 구현부를 실행하였다면, 후행하는 구현부는 무의미하다.
if([선행 조건]){
[선행 구현부]
} else if ([부수 조건 1]){
[부수 조건1 구현부]
} else if ([부수 조건 2]){
[부수 조건2 구현부]
}
부수 조건 1 구현부가 실행되었다면, 이는 선행 조건이 거짓이라는 의미
부수 조건 2 구현부가 실행되었다면, 이는 선행 조건 및 부수 조건 1이 모두 거짓이라는 뜻
if/else if/else
- if문은 else if와 else 문을 모두 가질 수 있다. else문은 반드시 마지막에 한개만 위치할 수 있다
if([선행 조건]){
[선행 구현부]
} else if ([부수 조건 1]){
[부수 조건1 구현부]
} else if ([부수 조건 2]){
[부수 조건2 구현부]
} else {
[거짓 구현부]
}
거짓 구현부가 실행되었다면 선행 조건, 부수조건1, 부수조건2 모두 거짓이라는 뜻
하나의 if문이 가지는 구현 부 중 한개 이하만 실행될 수 있다..(여타 조건이 참이어도, 선행구현부가 실행되었으면 후행하는 조건 및 구현부는 무시)
switch
- 분기문은 분기 대상 변수가 가지는 값에 따라 case를 활용하여 실행할 구문을 분리하기 위해 사용
switch([분기 대상 변수]){
case [값 1]:
[값 1 구현부]
[break;]?
case [값 2]:
[값 2 구현부]
[break;]?
case [값 3]:
[값 3 구현부]
[break;]?
[...]
[default:]?
}
break 키워드는 해당 위치에서 switch 분기문을 종료하겠다는 의미
default 키워드는 선행하는 case 중 분기 대상 변수가 가지는 값과 일치하는 것이 없을 때 최종적으로 실행하는 일종의 else 역할
deault는 반드시 한 개 이하는 존재, 마지막에 위치