-
javascript 제어문front-end/Javascript 2023. 6. 21. 11:49반응형
제어문이란?
제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다.
일반적인 코드는 위에서 아래 방향으로 순차적으로 실행된다.
1. 블록문 : 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 자바스크립트는 블록문을 하나의 실행 단위로 취급한다.
// 블록문 { var foo = 10; } // 제어문 var x = 1; if(x < 10){ x++; } // 함수 선언문 function sum(a,b){ return a + bl }2. 조건문 : 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. 조건식은 불리언 값으로 평가될 수 있는 표현식이다. (if ... else문과 switch 문으로 두 가지 조건문을 제공한다)
- if ... else문 : 주어진 조건식의 평가 결과, 즉 논리적참 또는 거짓에 따라 실행할 코드 블록을 결정한다.
조건식의 평가 결과가 true일 경우 if문의 코드 블록이 실행되고 false일 경우 else문의 코드 블록이 실행된다.if(조건식) { // 조건식이 참이면 이 코드 블록이 실행 }else { // 조건식이 거짓이면 이 코드 블록이 실행 } if(조건식1) { // 조건식1이 참이면 이 코드 블록이 실행 }else if(조건식2) { // 조건식2가 거짓이면 이 코드 블록이 실행 }else { // 조건식1과 조건식2가 모두 거짓이면 이 코드 블록이 실행 }3. switch문 : 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮긴다. case문은 상황을 의미하는 표현식을 지정하고 콜론으로 마친다. 그리고 그 뒤에 실행할 문들을 위치시킨다. switch 문의 표현식과 일치하는 case 문이 없다면 실행 순서는 default 문으로 이동한다. default문은 선택사항으로, 사용할 수도 있고 사용하지 않을 수도 있다.
switch (표현식) { case 표현식1: switch 문의 표현식과 표현식1이 일치하면 실행될 문; break; case 표현식2: switch 문의 표현식과 표현식2가 일치하면 실행될 문; break; default: switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문;4. 반복문 : 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다. 그 후 조건식을 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행한다. 이는 조건식이 거짓일 때까지 반복된다.
- for문 : 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행한다.
for(변수 선언문 또는 할당문; 조건식; 증감식){ 조건식이 참인 경우 반복 실행될 문 } for (var i = 0; i < 2; i++){ console.log(i); } // 0 1- while문 : 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행한다. for문은 반복 횟수가 명확할 때 주로 사용하고 while문은 반복 횟수가 불명확할 때 주로 사용한다. while문은 조건문의 평가 결과가 거짓이 되면 코드 블록을 실행하지 않고 종료한다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 강제 변환하여 논리적 참, 거짓을 구별한다.
var count = 0; // count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다. while(count < 3) { console.log(count); // 0 1 2 count++; } // 무한루프 while(true) {...}- do ... while문 : 코드 블록을 먼저 실행하고 조건식을 평가한다. 따라서 코드 블록은 무조건 한 번 이상 실행된다.
var count = 0; // count가 3보다 작을 때까지 코드 블록을 계속 반복 실행한다. do{ console.log(count); // 0 1 2 count++; } while (count < 3);5. break문 : switch문과 while문에서 살펴보았듯이 break문은 코드 블록을 탈출한다. 좀 더 정확히 표현하자면 코드 블록을 탈출하는 것이 아니라 반복문 또는 switch 문의 코드 블록을 탈출한다. 그 외에 break 문을 사용하면 SyntaxError(문법 에러)가 발생한다.
if(true){ break // Uncaught SyntaxError }6. countinue문 : 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다. break 문처럼 반복문을 탈출하지는 않는다.
var string = "Hello World."; var search = 'l'; var count = 0; for(var i = 0; i < string.lenght; i++){ // l이 아니면 현 지점에서 실행을 중단하고 반복문의 증감식으로 이동한다. if(stirng[i] !== search) continue++; count++; } console.log(count) // 3 * 참고로 String.prototype.match 메서드를 사용해도 같은 동작을 한다. // 동일 하다. for(var i = 0; i < string.lenght; i++){ // l이면 카운트를 증가시킨다. if(stirng[i] === search) count++; }위와 같이 if문 내에서 실행해야 할 코드가 한 줄이라면 continue문을 사용했을 때보다 간편하고 가독성도 좋다. 하지만 if문 내에서 실행해야 할 코드가 길다면 들여스기가 한 단계 더 깊어지므로 continue문을 사용하는 편이 가독성이 더 좋다.
반응형'front-end > Javascript' 카테고리의 다른 글
javascript 객체 리터럴 (0) 2023.06.28 javascript 타입 변환과 단축 평가 (0) 2023.06.27 javascript 연산자 (0) 2023.06.21 javascript 데이터타입 (0) 2023.06.21 html을 js로 삽입 할 때 요소 위치 설정하기 (0) 2023.06.18