제어문
제어문 : 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용
일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행되지만 제어문을 사용하면 코드의 실행 흐름 인위적 제어 가능
블록문
블록문 : 0개 이상의 문을 중괄호로 묶은 것 (= 코드블록, 블록)
자바스크립트는 블록문을 하나의 실행 단위로 취급
일반적으로 제어문이나 함수를 정의할 때 사용
조건문
조건문 : 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정 (불리언 값으로 평가될 수 있는 표현식)
if...else 문 : 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정
조건식이 불리언 값이 아닌 값으로 평가되면 자바스크립트 엔진에 의해 암묵적으로 불리언 값으로 강제 변환되어 실행할 코드블록 결정
(암묵적 타입 변환)
if(조건식1){
// 조건식1이 참이면 이 코드블록 실행
}else if(조건식2){
// 조건식2가 참이면 이 코드블록 실행
}else{
// 조건식1과 조건식2가 모두 거짓이면 이 코드블록 실행
}switch 문 : 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮김
논리적 참, 거짓보다는 다양한 상황에 따라 실행할 코드 블록을 결정할 때 사용
swtich (표현식) {
case 표현식1:
swtich문의 표현식과 표현식1이 일치하면 실행될 실행문1;
break;
case 표현식2:
swtich문의 표현식과 표현식1이 일치하면 실행될 실행문2;
break;
...
default:
swtich문의 표현식과 일치하는 case 문이 없을 때 실행될 default 실행문;
}break문 : 코드 블록에서 탈출하는 역할
break문이 없다면 case 문의 표현식과 일치하지 않더라도 실행 흐름은 다음 case 문으로 연이어 이동
폴스루 : break 문이 없어 모든 case문과 default문을 실행한 경우
반복문
반복문 : 조건식의 평과 결과가 참인 경우 코드블록을 실행하며 조건식이 거짓일 때 까지 반복
for 문 : 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행 (반복 횟수가 명확할 때)
for(변수 선언문 또는 할당문; 조건식; 증감식){
조건식이 참인 경우 반복 실행될 문
}// 무한루프
for(;;){...}while 문 : 조건식의 평가 결과가 참이면 코드블록을 계속해서 반복 실행 (반복 횟수가 불명확할 때)
조건문의 평가 결과가 거짓이 되면 코드블록을 실행하지 않고 종료
while(조건문){
// 조건식이 참인 경우 반복 실행될 문
}// 무한 루프
while(true){...}무한루프를 탈출하기 위해서는 코드 블록 내 if 문으로 탈출 조건을 만들고 break 문으로 코드 블록을 탈출
do...while 문 : 코드블록을 먼저 실행하고 조건식을 평가 (코드블록은 무조건 한 번 이상 실행)
do{
// 조건문이 참인 경우 반복 실행될 문
// 조건문에 상관없이 무조건 한 번은 실행
}while(조건문)break 문
break 문 : 레이블 문, 반복문, switch 문의 코드블록을 탈출
// 레이블 문
sayEchichi : console.log('Echichi')switch 문의 case 문과 default 문은 레이블 문
continue 문
continue 문 : 반복문의 코드블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킴
var string = 'Hello Echichi'
var search = "c"
var count = 0
for (var i = 0; i < string.length; i++) {
// string[i] 가 c라면 count 증가
if (string[i] === search) {
count++;
// code...
// code...
// code...
}
}
for (var i = 0; i < string.length; i++) {
// string[i] 가 c가 아니라면 count 증가시키지 않는다
if (string[i] !== search) continue;
// continue 문을 사용하면 if 문 밖에 코드 작성 가능 (depth 가 하나 줄어든다)
count++;
// code...
// code...
// code...
}'Javascript' 카테고리의 다른 글
| [모던 자바스크립트 Deep Dive] 07. 객체 리터럴 (0) | 2023.11.05 |
|---|---|
| [모던 자바스크립트 Deep Dive] 06. 타입 변환과 단축 평가 (0) | 2023.11.05 |
| [모던 자바스크립트 Deep Dive] 04. 연산자 (0) | 2023.11.04 |
| [모던 자바스크립트 Deep Dive] 03. 데이터 타입 (0) | 2023.11.04 |
| [모던 자바스크립트 Deep Dive] 02. 표현식과 문 (0) | 2023.11.04 |