Home C언어 기본 문법 (조건문)
Post
Cancel

C언어 기본 문법 (조건문)

조건문

조건문이란 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다

if문

if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하고 거짓(false)이면 아무것도 실행하지 않는 조건문을 말한다

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h> 

int main() {
    
    int apple = 4;

    if(apple>5){
        printf("사과가 5개보다 많습니다");
    }
    else if (apple>3){
        printf("사과가 3개보다 많습니다");
    }
    else {
        printf("사과가 3개보다 적습니다");
    }

    return 0;
}

출력

1
사과가 3개보다 많습니다

이것이 if문에 형태이다 차근차근 뜯어보면

1
2
3
if(apple>5){
        printf("사과가 5개보다 많습니다")
    }

if를 적고 괄호 안에 조건을 적는다 여기서 만약 조건이 참이라면 중괄호에 적은 코드를 실행시킨다

1
2
3
else if (apple>3){
    printf("사과가 3개보다 많습니다");
}

else if는 if문이 거짓일 때 실행된다 if랑 마찬가지로 괄호 안에 조건을 적고 여기서 만약 조건이 참이라면 중괄호에 적은 코드를 실행 시킨다

앞에서 apple을 4로 선언했으니 해당 조건 참이 되어 중괄호 안 코드인 printf(“사과가 3개보다 많습니다”)가 실행되어 “사과가 3개보다 많습니다”라는 문장이 출력되게 된다

1
2
3
else {
    printf("사과가 3개보다 적습니다")
}

여기서 else는 위에 적은 조건들이 모두 거짓일 때 실행되는 곳이다

논리 연산자

논리 연산자인 &&와 를 사용하면 if문에 조건을 추가할 수 있는데

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h> 

int main() {
    
    int apple = 4;
    int banana = 5;

    if(apple>5 && banana>4){
        printf("과일이 매우 많습니다");
    }
    else if (apple>5 || banana>4){
        printf("과일이 많습니다");
    }
    else {
        printf("과일이 적습니다");
    }

    return 0;
}

출력

1
과일이 많습니다

차근 차근 코드를 뜯어보자

1
2
3
if(apple>5 && banana>4){
        printf("과일이 매우 많습니다");
    }

우선 apple>5 && banana>4은 apple이 5보다 크다 와 banana가 4보다 크다는 조건을 모두 만족해야만 참이 된다

1
2
3
else if (apple>5 || banana>4){
    printf("과일이 많습니다");
}

apple>5 || banana>4는 apple이 5보다 크다 와 banana가 4보다 크다는 조건 중 하나만 만족해도 참이 된다 그러니 “과일이 많습니다”라는 문장이 출력 된 것이다

조건문에서 자주 쓰는 조건 연산자

  1. ㅤ>=: 좌변이 우변보다 같거나 크면 참이 된다
  2. ㅤ>: 좌변이 우변보다 크면 참이 된다
  3. ㅤ<=: 좌변이 우변보다 작거나 같으면 참이 된다
  4. ㅤ<: 좌변이 우변보다 작으면 참이 된다
  5. ㅤ==: 좌변과 우변이 같으면 참이 된다
  6. ㅤ!=: 좌변과 우변이 다르면 참이 된다

삼항 연산자

삼항 연산자는 if 조건문을 짧게 표현할 수 있는 장점을 가진 연산자이다 하지만 가독성을 해칠 수 있기에 가독성을 해치지 않으면서 코드가 간결해지는 경우에만 삼항 연산자를 써야한다

코드

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h> 

int main(){
    int num1 = 5;
    int num2;
 
    num2 = num1 ? 100 : 200;  
 
    printf("%d\n", num2);     
}

출력

1
100

위 코드를 뜯어보자

1
num2 = num1 ? 100 : 200;

이 코드의 의미는 num1이 참이면 num2에 100을 넣고 거짓이면 200을 넣는다는 의미이다 이처럼

삼항연산자는 참 거짓을 판단할 변수를 적고 ? 뒤에 참일 때 값 : 뒤에는 거짓일 때 값으로 생겼다

앞에서 배운 비교 연산자와 함께 사용하면

코드

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(){
    int num1 = 10;
    int num2;
 
    num2 = num1 == 10 ? 100 : 200;
 
    printf("%d\n", num2);  
}

출력

1
100

해당 코드를 뜯어보자

1
num2 = num1 == 10 ? 100 : 200;

이 코드의 의미는 num1이 만약 10이라면 num2에 100을 넣고 아니라면 200을 넣는다는 의미이다

Switch문

Switch문은 if문과 같은 조건 제어문으로 if랑 달리 <,>,<=,>=등과 같은 범위를 사용할 수 없고 if문은 조건식이 true일 경우에 실행된다고 하면 switch문은 비교할 변수가 어떤값을 가지냐에 따라 실행문을 선택되는 방식이다 ==만 사용하는 if이라고 생각하면 편하다

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h> 

int main() {
    
    int apple = 4;

    switch (apple){
    case 1:
        printf("사과 1개 있습니다");
        break;
    case 2:
        printf("사과 2개 있습니다");
        break
    case 3:
        printf("사과 3개 있습니다");
        break
    case 4:
        printf("사과가 4개 있습니다");
        break
    default:
        break;
    }

    return 0;
}

출력

1
사과가 4개 있습니다

이것이 switch문에 형태이다

뜯어보면 switch 열 괄호에 변수를 적고 case 옆에 값을 적으면 그 값이 참이면 밑에 문장이 실행되고 거짓이면 실행되지 않는다

만약 case에 값이 모두 거짓이면 default가 실행된다 그리고 switch문을 사용할 때는 case에 실행할 문장과 break를 적어야 한다

위에서는 apple을 4라고 적었으니 case 4:에서 걸려 안에 문장인 printf(“사과가 4개 있습니다”)가 실행되고 break로 탈출한 것이다

This post is licensed under CC BY 4.0 by the author.