Skip to content

Commit

Permalink
Create 제어문.md
Browse files Browse the repository at this point in the history
  • Loading branch information
si14444 authored May 25, 2024
1 parent 199ce7b commit cee0ba9
Showing 1 changed file with 144 additions and 0 deletions.
144 changes: 144 additions & 0 deletions 나범수/week2/제어문.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# 제어문
제어문은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용된다.

## 블록문
0개 이상의 문을 중괄호로 묶은 것이다.
자바스크립트는 블록문을 하나의 실행 단위로 취급한다.

{
var foo = 10;
}

## 조건문
조건문은 주어진 조건식의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정한다.

### if ...else문
주어진 조건문의 평가 결과, 즉 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.

if (조건식1) {
//조건식1이 참이면 이 코드 블록이 실행된다.
} else if (조건식2) {
//조건식2이 참이면 이 코드 블록이 실행된다.
} else {
//조건식이 모두 거짓이면 이 코드 블록이 실행된다.
}

if문의 조건식은 불리언 값으로 평가되어야 한다. 만약 값으로 평가되면 암묵적으로 불리언 값으로 강제 변환된다.

### switch 문

sitch문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮긴다.

let number = 2;

switch (number) {
case 1:
console.log("숫자는 1입니다.");
break;
case 2:
console.log("숫자는 2입니다.");
break;
case 3:
console.log("숫자는 3입니다.");
break;
default:
console.log("숫자는 1, 2, 3이 아닙니다.");
break;
}

switch문에서 break문을 사용하지 않으면 switch문을 탈출하지 않고 끝까지 모든 case문을 실행하다 defualt경우로 넘어가게 된다.

## 반복문
반복문은 조건식의 평가 결과가 참인 경우 코드 블록을 실행한다. 그 후 조건식을 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행한다.

### for문
for문은 조건식이 거짓으로 평가될 때까지 반복 실행한다.

for (let i = 0; i < 2; i++) {
console.log(i)
}

//0
//1

for문에 어떤 식도 선언하지 않으면 무한 루프가 된다.

for (;;) {...}

### while문
while문은 주어진 조건식의 평가 결과가 참이면 코드 블럭을 계속해서 반복 실행한다
for문은 반복 횟수가 명확할 때 주로 사용하고 while문은 반복 횟수가 불명확할 때 주로 사용한다.

let number = 1;

while (number <= 5) {
console.log(number);
number++;
}

// 1
// 2
// 3
// 4
// 5

조건식에 true를 넣으면 무한루프가 된다

while(true) {...}

무한 루프 내에 if문으로 조건을 만들고 break문으로 탈출한다.

### do... while문
코드 블록을 먼저 실행하고 조건식을 평가한다. 따라서 코드 블록은 무조건 한 번 이상 실행된다.

let number = 1;

do {
console.log(number);
number++;
} while (number <= 5);

// 1
// 2
// 3
// 4
// 5

## break문
break문은 코드 블록을 탈출한다. 레이블 문, 반복문, switch문의 코드 블록 외에 break문을 사용하면 SyntaxError가 발생한다.

> 참고로 레이블 문이란 식별자가 붙은 문을 말한다
>
> foo: console.log("foo");
>
레입블 문은 프로그램의 실행 순서를 제어하는 데 사용한다. 사실 switch문의 case문과 default문도 레이블 문이다.

outerLoop: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outerLoop; // outerLoop 레이블이 붙은 외부 루프를 탈출
}
console.log(`i = ${i}, j = ${j}`);
}
}

// i = 0, j = 0
// i = 0, j = 1
// i = 0, j = 2
// i = 1, j = 0

## continue문
continue문은 반복문의 코드 블록 실행을 현 시점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다.
break문처럼 반복문을 탈출하지는 않는다.

for (let number = 1; number <= 5; number++) {
if (number % 2 !== 0) {
continue; // number가 홀수이면 다음 반복으로 넘어감
}
console.log(number);
}

// 2
// 4

0 comments on commit cee0ba9

Please sign in to comment.