JS 제어문

지식저장공간·2023년 3월 3일
0

JS

목록 보기
4/16
post-thumbnail

제어문

프로그램의 순차적인 흐름을 제어해야 할 때 사용하는 실행문을 제어문이라 한다.
이러한 제어문에는 조건문, 반복문 등이 포함된다.

조건문

조건문이란 프로그램 내에서 주어진 표현식의 결과에 따라 별도의 명령을 수행하도록 제어하는 실행문
조건문 중에서 가장 기본이 되는 실행문은 if문입니다.

  1. if 문
  2. if/ else 문
  3. if/ else if/ else 문
  4. switch 문

if 문

if 문은 표현식의 결과가 참(true)이면 주어진 실행문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다.

if(표현식){
 표현식의 결과가 참일 때 실행하고자 하는 실행문; 
}

const x = 10;
const y = 20;

if(x<y){
	console.log("y는 x보다 큽니다.") // console 창에 해당 문자열 출력.
}

if(!x==y){
	console.log("x와 y는 다릅니다."); // console 창에 해당 문자열 출력 
}

if/ else 문

if 문과 같이 사용할 수 있는 else 문은 if 문의 표현식 결과가 거짓(false)일 때 실행문을 실행시킨다.

if (표현식) {

    표현식의 결과가 참일 때 실행하고자 하는 실행문;

} else {

    표현식의 결과가 거짓일 때 실행하고자 하는 실행문;

}

const x = 10;
const y = 10;

if(x>y){
	console.log("x는 y보다 큽니다."); 
} else{
	console.log("y는 x보다 큽니다."); 
}
// console 창에 "y는 x보다 큽니다." 출력
// else 문은 if 문의 조건이 false일 경우 반드시 실행되기 때문에 else 문의 조건은 존재하지 않는다.

if/ else if/ else 문

else if 문은 if 문처럼 표현식을 설정할 수 있으며, 중첩된 if 문을 좀 더 간결하게 표현할 수 있다.
하나의 조건문 안에서 if 문과 else 문은 단 한 번만 사용될 수 있지만, else if 문은 여러 번 사용되어 다양한 조건을 설정할 수 있다.

if (표현식1) {

    표현식1의 결과가 참일 때 실행하고자 하는 실행문;

} else if (표현식2) {

    표현식2의 결과가 참일 때 실행하고자 하는 실행문;
  // 표현식1이 참일 경우 else if 문과 else 문은 절대 실행되지 않는다.

} else {

    표현식1의 결과도 거짓이고, 표현식2의 결과도 거짓일 때 실행하고자 하는 실행문;

}

const x = 10;
const y = 20;

if(x == y){
	console.log("x==y"); 
} else if(x>y){
	console.log("x>y");
} else{
 	console.log("x<y");  
}
// console 창에 "x<y" 출력

if(x <= y){
	console.log("x<=y"); 
} else if(x<y){
	console.log("x<y");
} else{
 	console.log("x>y");  
}
// console 창에 "x<=y" 출력
// else if 문의 조건도 참이지만, if 문이 true이기 때문에 else if 문은 실행될 수 없다.

switch 문

switch 문은 if/ else 문과 마찬가지로 주어진 조건 값에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문이다. switch 문은 if/ else문보다 가독성 측면에서 뛰어나다.

switch (조건 값) {
    
    case1:
        조건 값이 값1일 때 실행하고자 하는 실행문;
        break;

    case2:
        조건 값이 값2일 때 실행하고자 하는 실행문;
        break;

    ...

    default:
        조건 값이 어떠한 case 절에도 해당하지 않을 때 실행하고자 하는 실행문;
        break;
}
// default 절은 조건 값이 위에 나열된 어떠한 case 절에도 해당하지 않을 때 실행된다.
// 각 case 절 및 default 절은 반드시 break 키워드를 포함하고 있어야 한다. 
// break 키워드는 조건 값에 해당하는 case 절이나 default 절이 실행된 뒤에 전체 switch 문을 빠져나가게 해준다.
// break 키워드를 작성하지 않을경우 중복하여 처리될 가능성이 있다.

const x = 10;
switch(x){
 
  case 5: console.log("x의 값은 5입니다."); break;
  
  case 6: console.log("x의 값은 6입니다."); break;
    
  case 7: console.log("x의 값은 7입니다."); break;
    
  case 10: console.log("x의 값은 10입니다."); break;
   
  default: console.log("x의 값이 5,6,7,10 중 없습니다."); break;
    
}
// console 창 "x의 값은 10입니다." 출력

반복문

반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 실행문이다.

while 문

특정조건을 만족하는 경우 반복적으로 로직이 실행된다.

while (표현식) {
    표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;
}
// while 문은 우선 표현식이 참(true)인지를 판단하여 참이면 내부의 실행문을 실행한다.
// 내부 실행문을 전부 수행하고, 다시 표현식이 참, 거짓인지 판단 후 거짓이면 while 문을 빠져나온다.

let x = 10;
while(x!=20){
    console.log(x);
    x++;
}
// console창에 10 ~ 19 출력
// while 문 내부에 표현식의 결과를 변경하는 실행문이 존재하지 않을 경우 무한루프에 빠진다.
// 반드시 표현식이 무한루프에 빠지지 않도록 조심한다.

for 문

for 문은 while문과는 달리 자체적으로 초기식, 표현식, 증감식을 모두 포함하고 있는 반복문이다.

for (초기식; 표현식; 증감식) {

    표현식의 결과가 참인 동안 반복적으로 실행하고자 하는 실행문;

}

for(let i = 0; i < 10 ; i++){
 	console.log(i); 
}
// console창에 0 ~ 9 출력

for/ in 문

for/ in 문은 일반적인 for 문과는 전혀 다른 형태의 반복문이다.
for/ in 문은 해당 객체의 모든 열거할 수 있는 프로퍼티를 순회할 수 있도록 해준다.

for (변수 in 객체) {
    객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
}
// 객체의 열거할 수 있는 프로퍼티의 개수만큼 반복

const arr = [2,4,8,16,32,64,128,256,512,1024];

for(const i in arr){
  	console.log(i); // i는 해당 배열의 인덱스(index)를 표현한다. 0 ~ 9 
    console.log(arr[i]); // 배열의 인덱스에 접근하여 값을 가져온다. 2 ~ 1024
}

for/in 문은 루프마다 객체의 열거할 수 있는 프로퍼티의 이름을 지정된 변수에 대입한다.
이렇게 대입받은 변수를 이용하면 루프 안에서 객체의 열거할 수 있는 프로퍼티에 순차적으로 접근할 수 있다.

for/ of 문

for/ of 문은 반복할 수 있는 객체를 순회할 수 있도록 해주는 반복문이다.
자바스크립트에서 반복할 수 있는 객체에는 Array, Map, Set 객체 등이 있다.
이 반복문은 루프마다 객체의 열거할 수 있는 프로퍼티의 값을 지정된 변수에 대입한다.

for (변수 of 객체) {
    객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
}

const arr = [2,4,8,16,32,64,128,256,512,1024];

for(const i of arr){
    console.log(i); // console 창에 2 ~ 1024 출력
  	console.log(arr[i])// arr[2], arr[4], arr[8] 출력 후 undefined
}

const set = new Set([1, 1, 2, 2, 3, 3]);

for (var value of arr) {
	console.log(value); // 1 2 3 출력
}

출처 : tcp school.com

profile
발전하는 개발자가 꿈입니다. 지식을 쌓고 지식을 활용해 목표 달성을 추구합니다.

0개의 댓글

관련 채용 정보