호쌤
호쌤 Just For Fun

[JS] 프로그램의 흐름제어(1) - 조건문

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[JS] 프로그램의 흐름제어(1) - 조건문≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[JS] 프로그램의 흐름제어(1) - 조건문

프로그램 구문이 무조건 순차적으로 실행되는 것이 아니라 주어진 조건을 판별하여 선택적으로 실행 여부를 결정하도록 흐름을 제어하는 구문을 조건문이라고 합니다.

#01. if 문

주어진 조건이 참인 경우에만 수행되는 문법적 표현.

1
2
3
if (조건식) {
    ... 조건이 참인 경우에 수행될 명령들 ...
}

1) 논리값을 사용한 경우

1
2
3
4
5
6
7
8
9
10
11
12
13
// 일반 구문
console.log("배고픈데");

// 조건문에서 사용할 조건값 생성
var have_money = true;
//var have_money = false;

if (have_money) {
    console.log("식당에서");
}

// 일반 구문
console.log("밥을 먹자");
▶ 출력결과
1
2
3
배고픈데
식당에서
밥을 먹자

2) 숫자형 값을 사용한 경우

숫자형인 경우 0은 거짓, 0이 아닌 모든 수는 참으로 식별한다.

1
2
3
4
5
6
7
8
var money = 10000;
//var money = 0;

if (money) {
    console.log("택시를 타고");
}

console.log("집에가자");
▶ 출력결과
1
2
택시를 타고
집에가자

3) 비교식을 사용한 조건문

() 안의 식이 참인 경우 {} 안의 구문이 실행된다.

1
2
3
4
5
6
7
var money = 12000

if (money >= 5000) {
    var k = money-5000;
    // 조건값들을 공백을 기준으로 하나의 값으로 연결하는 함수.
    console.log("선물을 사고" + k + "원 남는다.");
}
▶ 출력결과
1
선물을 사고7000원 남는다.

4) 논리식을 사용한 조건문

AND(&&) 연산

모든 값이 TRUE인 경우에만 결과가 TRUE

1
2
3
4
5
6
var x = true;
var y = true;

if (x && y) {
    console.log("주어진 조건은 참 입니다.");
}
▶ 출력결과
1
주어진 조건은 참 입니다.

AND(&&) 연산은 하나라도 거짓이 포함되어 있다면 결과가 거짓이므로 아래의 조건문은 실행되지 않는다.

1
2
3
4
5
6
var x = true;
var y = false;

if (x && y) {
    console.log("주어진 조건은 참 입니다.");
}

OR (||) 연산

OR(||) 연산은 하나라도 참이 포함되어 있다면 결과가 참이므로 아래의 조건문은 실행된다.

1
2
3
4
5
6
var x = true;
var y = false;

if (x || y) {
    console.log("주어진 조건은 참 입니다.");
}
▶ 출력결과
1
주어진 조건은 참 입니다.

OR(||) 연산은 모든 값이 거짓인 경우에만 결과가 거짓이 되므로 아래의 조건문은 실행된다.

1
2
3
4
5
6
var x = true;
var y = false;

if (x || y) {
    console.log("주어진 조건은 참 입니다.");
}
▶ 출력결과
1
주어진 조건은 참 입니다.

5) NOT(!) 연산

! 연산자는 논리값을 부정한다.

1
2
3
4
5
6
var a = true;

// 조건이 거짓이므로 출력되지 않음.
if (!a) {
    console.log("Hello World");
}
1
2
3
4
5
6
var b = false;

// 조건이 참이므로 출력됨
if (!b) {
    console.log("헬로월드");
}
▶ 출력결과
1
헬로월드

논리식에 대한 NOT 연산

true && false 는 거짓이지만 그 결과를 부정했으므로 결과는 이된다.

1
2
3
4
5
6
var x = true;
var y = false;

if ( !(x && y) ) {
    console.log("주어진 조건은 참 입니다.");
}
▶ 출력결과
1
주어진 조건은 참 입니다.

true || false 는 참이지만 그 결과를 부정했으므로 결과는 거짓이된다.

1
2
3
4
5
6
var x = true;
var y = false;

if ( !(x || y) ) {
    console.log("주어진 조건은 참 입니다.");
}

#02. if ~ else 문

그렇지 않으면~~

  • if문은 조건이 참인 경우에만 수행되고 조건이 거짓인 경우는 수행되지 않는다.
  • if문 뒤에 else문을 덧붙여 조건이 거짓인 경우에 수행되는 구문을 추가할 수 있다.
  • else문은 if문 뒤에만 위치할 수 있고 독립적으로는 존재할 수 없다.
1
2
3
4
5
6
7
var age = 19;

if (age > 19) {
    console.log("성인입니다.");
} else {
    console.log("성인이 아닙니다.");
}
▶ 출력결과
1
성인이 아닙니다.

#03. if ~ else if ~ else 문

여러가지 경우의 수를 나열하는 조건문.

순차적으로 조건을 판별하면서 가장 처음 만나는 인 조건의 블록을 수행하고 빠져나간다.

1
2
3
4
5
6
7
8
9
10
11
12
13
var point = 72;

if (point > 90) {
    console.log("A학점");
} else if (point > 80) {
    console.log("B학점");
} else if (point > 70) {
    console.log("C학점");
} else if (point > 60) {
    console.log("D학점");
} else {
    console.log("F학점");
}
▶ 출력결과
1
C학점

#04. switch 문

1) 기본 구문

하나의 변수나 수식에 대한 여러가지 경우의 수를 나열하는 형식.

조건에 맞는 case 블록부터 break 키워드를 만날 때 까지 실행한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var point = "B";

switch (point) {
    case 'A':
        console.log("A학점 입니다.");
        break;
    case 'B':
        console.log("B학점 입니다.");
        break;
    case 'C':
        console.log("C학점 입니다.");
        break;
    default:
        console.log("C학점 미만 입니다.");
        break;
}
▶ 출력결과
1
B학점 입니다.

2) break가 없는 경우

중단점이 없기 때문에 그 아래 블록까지 함께 실행된다.

1
2
3
4
5
6
7
8
9
10
11
12
var point = "B";

switch (point) {
    case 'A':
        console.log("A학점 입니다.");
    case 'B':
        console.log("B학점 입니다.");
    case 'C':
        console.log("C학점 입니다.");
    default:
        console.log("C학점 미만 입니다.");
}
▶ 출력결과
1
2
3
B학점 입니다.
C학점 입니다.
C학점 미만 입니다.

필요에 따라 의도적으로 break의 위치를 조절 할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
var point = "B";

switch (point) {
    case 'A':
    case 'B':
    case 'C':
        console.log("이 과목을 Pass 했습니다.");
        break;
    default:
        console.log("이 과목을 Pass하지 못했습니다.");
        break;
}
▶ 출력결과
1
이 과목을 Pass 했습니다.

위의 구문은 아래와 같이 if~else문으로 표현할 수 있다.

1
2
3
4
5
6
7
var point = "B";

if (point == 'A' || point == 'B' || point == 'C') {
    console.log("이 과목을 Pass 했습니다.");
} else {
    console.log("이 과목을 Pass하지 못했습니다.");
}
▶ 출력결과
1
이 과목을 Pass 했습니다.

3) switch의 조건을 식으로 설정하는 경우

1
2
3
4
5
6
7
8
9
10
var myPoint = 72;

switch (myPoint > 70) {
    case true:
        console.log("이 과목을 Pass 했습니다.");
        break;
    default:
        console.log("이 과목을 Pass하지 못했습니다.");
        break;
}
▶ 출력결과
1
이 과목을 Pass 했습니다.

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[JS] 프로그램의 흐름제어(1) - 조건문≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus