프로그래밍 언어/C언어

C언어 기초이론 (조건문)

chobyeonggyu03 2024. 6. 13. 14:26

조건문이란?

조건을 만족할 때만 코드를 실행하는 실행으로써 특정상황에 반응하게 하는 유기적인 코드를 짤 때 유용함

-조건식의 결과값은 true나 false 둘중 하나여야함

-조건식에는 대부분 비교연산자와 논리연산자가 주로 쓰임

1) if 조건문

-if문은 특정조건을 만족할 때 해당코드를 실행시키는 조건문이다

**if문 사용방법**

if ( 실행 조건 ){

(조건을 만족할 때 실행시킬 내용)

}

**if문 주의사항**

-if문은 if만을 계속해서 나열하여 사용할 수 있지만, if문에 이용된 모든 조건들을 다 읽게되기에 많은 비효율이 발생하게 됨

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int num;

    printf("정수를 입력해주세요: ");
    scanf("%d", &num);
    printf("\n");

    if(num < 0)
        printf("입력하신 수 자가 양다 적습니다. \n");

    if(num == 0)
        printf("수 자 0을 입력하셨습니다. \n");

    if(num > 0)
        printf("입력하신 수 자가 양다 큽니다. \n");

    return 0;
}

 

 

 

 

 

ex) if문만 사용하게 되면 (num<0)조건과 (num==0)조건, (num>0)조건들을 모두 읽게됨

2) if~else 조건문

-if~else문은 특정조건을 만족할 때 해당코드를 실행시키고, 만족하지 않을 때 else구문의 내용으로 넘어가는 구조이다.

**if~else문 사용방법**

if ( 실행 조건 ){

(조건을 만족할 때 실행시킬 내용)

} else {

(if문에 걸었던 조건을 만족하지 않을 때 실행시킬 내용)

}

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int num;
    double num1, num2;
    double result = 0;

    printf("두 수를 입력하세요: ");
    scanf("%lf %lf", &num1, &num2);
    printf("%lf %lf", num1, num2);
    printf("\n");

    printf("계산하고싶은 사칙연산의 번호를 입력하세요: \n");
    printf("1. 덧셈  2. 뺄셈  3.곱셈  4.나눗셈 \n");
    scanf("%d", &num);
    printf("\n");

    if(num == 1) {
        result = num1 + num2;
    } else if (num == 2) {
        result = num1 - num2;
    } else if (num == 3) {
        result = num1 * num2;
    } else {
        result = num1 / num2;
    }

    printf("사칙연산 결과: %lf", result);

    return 0;
}

 

 

 

**if~else문 주의사항**

-if~else구문을 사용할 때 if구문에서 조건식이 이미 성립했다면 else구문으로 넘어가지 않고 조건문을 탈출

3) if~else if~else 조건문

if~else if~else문은 if~else문을 단순히 중첩하여 쓴 조건문임

4) 삼항 연산자 조건문

피 연산자 3개를 늘여틀어놓는 구조의 조건문이기에 삼항연산자라 부름

**삼항연산자 사용방법**

(num1 > num2) ? (num1) : (num2);

(실행 조건) ? (참이면 실행) : (거짓이면 실행);

5) switch 조건문

실행조건을 거는 것 대신 case로 상황들을 나눠 선택한 상황에 맞는 case를 선택해 해당하는 값을 출력하는 구조

-조건식 이 한가지로 간결하며, 많은 경우의 수를 다룰 수 있기에 경우의 수가 많을 때 활용하면 유용함

-조건식을 먼저 계산한 후, 조건식의 결과와 일치하는 cas문으로 이동하는 구조임

-break나 끝을 만나면 switch문을 빠져나감

-case문의 값은 사수만 가능하며, 중복되면 안됨

-switch 조건문의 결과는 정수나 문자열이여야함

**if~else문 사용방법**

switch ( 번호 ){

case 1:

(case1에 대해 실행시킬 내용)

break;

case 2:

(case2에 대해 실행시킬 내용)

break;

case 3:

(case3에 대해 실행시킬 내용)

break;

}

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int num;
    printf("1에서 5까지의 정수를 입력하세요: ");
    scanf("%d", &num);
    printf("\n");

    switch (num) {
        case 1:
            printf("1은 one \n");
            break;
        case 2:
            printf("2는 two \n");
            break;
        case 3:
            printf("3은 three \n");
            break;
        case 4:
            printf("4는 four \n");
            break;
        case 5:
            printf("5는 five \n");
            break;
        default:
            printf("잘못된 입력입니다.\n");
            break;
    }

    return 0;
}

 

 


**switch문 주의사항**

-case별로 실행할 때 각각break를 안걸어주면 실행 후 switch문을 탈출하지않고 순서대로 아랫부분 case까지 읽어 밑에 결과들도 같이 실행되기 때문에 case별로 끝에

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int num;
    printf("1에서 5까지의 정수를 입력하세요: ");
    scanf("%d", &num);
    printf("\n");

    switch (num) {
        case 1:
            printf("1은 one \n");
            break;
        case 2:
            printf("2는 two \n");
            break;
        case 3:
            printf("3은 three \n");
            break;
        case 4:
            printf("4는 four \n");
            break;
        case 5:
            printf("5는 five \n");
            break;
        default:
            printf("잘못된 입력입니다.\n");
            break;
    }

    return 0;
}

break를 걸어줘야함