#1. 변수의 스코프

let, const 키워드로 선언된 경우

  • 블록 { } 밖에서 선언된 변수는 블록 안에서 불러올 수 있지만, 블록 안에서 선언된 변수는 밖에서 불러올 수 없다.
  • 변수의 범위가 블록안에서만 인정되기 때문에 다른 블록에서 중복 선언이 가능하다.
  • var 키워드는 선언된 위치에 상관없이 불러올 수 있기 때문에 사용하지 않는 것이 좋다.
let example = 1;

if(true) {
	let result = example + 4;
    
    // 정상출력
    console.log(result);  // 5
}
// 에러발생, 블록 안에 선언된 result 변수는 밖에서 불러올 수 없다.
console.log(result);  // 에러

 

#2. 조건문

  • 프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 조건을 판단하여 실행한다
  • if 문, if-else 문, if-else-if 문, 중첩 if 문, switch 문 이 있다.

 

1. if 문

  • 주어진 조건식이 참(true)인 경우 블록( {} ) 안의 문장을 수행한다.
  • 논리식(AND, OR, NOT), 비교식(>=, >, <, <=, ==, !=, ===, !==), 논리값(true, false) 등 조건에 따라 구분할 수 있다.
  • 아래 if-else 문, if-else-if 문, 중첩 if 문들을 통틀어 if문이라고 한다.
if(조건식) {
	조건식이 참인 경우 실행할 문장
};

 

2. if - else 문

  • if 문은 조건이 참인 경우에만 수행되고 거짓인 경우 수행되지 않는다.
  • if 문 뒤에 else 문을 덧붙여 조건이 거짓인 경우에 수행되는 구문을 추가할 수 있다.
  • else 문은 독립적으로 사용할 수 없다.
if(조건식) {
	조건이 참인 경우 실행할 문장
} else {
	조건이 거짓인 경우 실행할 문장
};

 

3. if - else - if

  • 여러 가지 경우의 수를 나열하는 조건문
  • 순차적으로 조건을 판별하면서 가장 처음 만나는 참인 조건의 블록을 수행하고 빠져나간다.
if (조건식1) {
	조건이 참인 경우에 실행할 문장
} else if (조건식2) {
	조건이 참인 경우에 실행할 문장
} else if (조건식3) {
	조건이 참인 경우에 실행할 문장
} else if (조건식3) {
	조건이 참인 경우에 실행할 문장
} else {
	조건이 거짓인 경우에 실행할 문장
};

 

4. 중첩 if 문

1) if - if 구조

  • if 문 안에 if 문을 중첩해서 사용 가능하다.
  • 특정 조건이 참으로 판단되어 블록안에 진입했을 때, 상세조건을 판별하는 구조이다.
if(조건식1) {
	if(조건식2) {
    	조건식1 과 조건식2가 모두 참일 때 수행할 문장
	} else {
    	조건식1이 참이고, 조건식2가 거짓일 때 수핼 할 문장
	};
} else {
	조건식1이 거짓일 때 수행될 문장
};

 

2) if - for 구조

  • if 문 안에 for 문을 중첩해서 사용 가능하다.
  • 특정 조건이 참으로 판단되어 블록안에 진입했을 때, 반복을 수행하는 구조
if(조건식) {
	for(초기식; 조건식; 증감식) {
    	~ 수행될 문장 ~
    }
} else {
	조건식이 거짓일 때 수행될 문장
};

 

5. switch 문

  • 하나의 변수나 수식에 대한 여러 가지 경우의 수를 나열하는 형식이다.
  • 처리해야 하는 경우의 수가 많을 때 유용하다.
  • 조건에 맞는 case 블록부터 break 키워드를 만날 때까지 실행한다.
  • switch 문의 조건식 결과는 정수 또는 문자열 이어야 한다.
  • case문의 값은 정수, 상수, 문자열만 가능하며 중복되지 않아야 한다. (변수 x)
const kor = "C";

switch(kor) {
	case "A" :
    		console.log("90점 이상")
       		break;
	case "B" :
    		console.log("80점 이상")
        	break;
	case "C" :
    		console.log("70점 이상")
        	break;
	case "D" :
    		console.log("60점 이상")
        	break;
	default :
    		console.log("재평가")
        	break; 
};  // 70점 이상
  • 마지막에 default는 모든 케이스를 충족하지 않을 경우 실행되고, 필요 없다면 생략할 수 있다. (else와 같은 기능)
  • break가 없다면 해당 case문부터 default 값 까지 함께 실행된다.

 

#3. 반복문

1. while 문

  • 주어진 조건을 만족시키는 동안 블럭을 반복해서 수행한다.
  • 초기식, 조건식, 증감식의 요소를 충족해야 성립한다.
1.초기식;
while(2.조건식) {
	3. 조건식의 연산 결과가 참인 동안 반복될 문장;
    4. 증감식;
}

let i = 1;
while(i < 5) {
	console.log(i);
    i++;
}
  • { } 안에서 선언되는 변수나 상수는 해당 블록 안에서만 유효하다.

 

2. for 문

  • while 문 과 다르게 초기식, 조건식, 증감식을 한 괄호 () 안에 모두 넣은 형태
  • 초기식, 조건식 확인 후 조건식이 참인 경우 { } 안을 1회 실행하고 증감식으로 이동한다. (증감식 실행 후 다시 조건식으로 이동)
  • 조건식이 거짓인 경우 { } 블록을 실행하지 않는다.
  • 대부분의 개발자는 while 문 보다 for 문을 많이 사용한다.
for(1.초기식; 2.조건식; 4.증감식) {
	3. ~ 수행될 문장 ~
};

for(let i = 1; i < 5; i++) {
	console.log(i);
};  // 1 ~ 4 출력

 

3. 중첩 for 문

  • for 문 내에 또 다른 for 문을 넣어 반복문을 만들 수 있다.
// 구구단 출력

for(let i = 1; i < 10; i++) {
	console.log(`== ${i} ==`);
    for(let j = 1; j < 10; j++) {
    	console.log(`${i} x ${j} = ${i*j}`);
	}
}

+ Recent posts