본문 바로가기
C 프로그래밍

독학으로 배우는 C언어 020 조건문 단일 if문

by 솔토지빈 2024. 9. 6.
반응형

독학으로 배우는 C언어 020 조건문 단일 if

Contents

     

    1. if

    1) 형식

    IF(조건식)
    실행문;

     

    - 주어진 조건식이 참이면 실행문을 실행한다.

    - 주어진 조건식이 거짓이면 실행문을 실행하지 않고 다음 문장을 실행한다.

    - 조건식에서 사용하는 관계연산자는 아래와 같다.

     

    연산자 기능
    == 같다 (= 는 대입연산자이며 사용하지 못한다.)
    != 같지 않다.
    > 보다 크다
    >= 보다 크거나 같다( => 거꾸로 사용할수 없다.)
    < 보다 작다.
    <= 보다 작거나 같다( =< 사용할수 없다.)

     

    실습 1: if1

    다음의 프로그램을 작성하여 if001.c 저장하고 실행해 보자.

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>                      
    void main()
    {
        int n;
        printf(" 점수를 입력하세요 ");
        scanf("%d", &n);
        if (n >= 90)
            printf("%d 우등생 이군요.\n", n);
        return 0;
    }

     

    설명 : 행 설명

    입력받은 점수가 90 보다 크면 Then 다음의 문을 수행한다.

    만약 90보다 작은 수가 입력되면 If 문을 수행하지 않는다.

     

     

    2. 단문 if

    조건식이 참일 경우 if 문 뒤에 하나의 문장만 처리하는 경우이다.

     

    실습 1: 단문 if

    다음의 프로그램을 작성하여 if002.c 저장하고 실행해 보자.

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void main()
    {
    	int res;
    	printf("정수를 입력하세요. \n");
    	scanf("%d", &res);
    	if (res == 1)
    		printf("1이 입력되었습니다. \n");
    	printf("처리를 종료하겠습니다. \n");
    	return 0;
    }

     

    설명 : 행 설명

    1이 아닌 수가 입력되면 if문의 다음 문장을 수행한다.

     

    3. 복문 if

    조건식이 참일 경우 if 문 뒤에 여러개의 문장을 처리하는 경우이며 이때는 대괄호‘{ }’를 사용한다.

     

    실습 1: 복문 if

    다음의 프로그램을 작성하여 if003.c 저장하고 실행해 보자.

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void main()
    {
    	int res;
    	printf("정수를 입력하세요. \n");
    	scanf("%d", &res);
    	if (res == 1) {
    		printf("1이 입력되었습니다. \n");
    		printf("1을 선택했습니다. \n");
    	}
    	printf("처리를 종료하겠습니다. \n");
    	return 0;
    }

     

    설명 : 행 설명

    if (res == 1)
    {
    실행문1;
    실행문2;
    }
    다음 문장
    조건이 참이면 실행문1과 실행문2를 수행하고 조건이 참이 아니면 { } 다음의 문을 수행한다.

     

    - 만일 res 라는 변수에 1 이 대입되어 있다면 if (res == 1) 은 결과가 참이므로 { } 안의 문을 실행한다.

    - 형식에서 보면 실행문1 과 실행문2 는 각각 {} 으로 쌓여 있는데 {} 사이를 블록이라고 한다. 즉 블록이란 여러 개의 문장이 모여있는 그룹을 의미하며 블록 내의 문장이 2개 이상 있을시 복문, 1개만 있을 때를 단문이라 한다.

    - 단문이란 1개의 문장을 말하며 if 에서는 단문인 경우와 복문인 경우를 분명히 구별해야 한다.

    - if 문에 복문이 들어있는 경우에는 반드시 { }으로 둘러 쌓여야 하지만 단문인 경우에는 { }를 생략할 수 있다.

     

    - 만약 if003.c에서 { }를 제거하면 어떤 결과가 나올지 예측해 보자.

     

    4. 다양한 단일 if 문 응용

     

    실습 1: 조건에 만족할 때만 덧셈

    입력받은 수가 100보다 크거나 같으면 100에 입력받은 수를 더하고 100보다 작은 값이 입력되면 100이 출력되는 프로그램을 작성해 보자. (if004.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>            
    void main()
    {
        int a, sum = 100;
        printf(" 수를 입력하세요 ");
        scanf("%d", &a);
        if (a >= 100)
            sum += a;
        printf("%d\n", sum);
        return 0;
    }

     

    실습 2: 절댓값 구하기

    수를 입력하여 음수이면 1을 곱하여 출력하고 양수이면 그대로 출력하는 프로그램을 작성해 보자. (if005.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    
    void main() {
        int su;
    
        printf("숫자를 입력하세요 : ");
        scanf("%d", &su);
        if (su < 0) {
            su *= -1;
            printf("음수를 양수로 바꾸었습니다.\n");
        }
        printf("결과는 %d입니다.\n", su);
        return 0;
    }

     

    실습 3: 소문자를 대문자로 출력하기

    영문자를 입력받아 소문자이면 대문자로 출력하고 대문자가 입력되면 그대로 대문자로 출력하는 프로그램을 작성해 보자. (if006.c)

     

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void main() {
        char c;
        printf("문자를 입력하세요 : ");
        scanf("%c", &c);
        if (c >= 97)
            c -= 32;
        printf("입력한 문자의 대문자는 %c입니다.", c);
        return 0;
    }

     

    실습 4: 입력된 두수를 비교하기

    두수를 입력받아 두 수가 같은 수가 아니면 다른 수라고 출력하는 프로그램을 작성해 보자. (if007.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void main()
    {
        int a, b;
        printf(" a, b 두 수를 입력하세요: ");
        scanf("%d, %d", &a, &b);
        if (a != b)
            printf("%d 와 %d는 다르다 \n", a, b);
        printf(" 그리고 끝! \n");
        return 0;
    }

     

    설명 : 행 설명

    scanf("%d, %d", &a, &b); 으로 입력받을 때 두 수를 구분하는 구분자로 , 를 사용하였다.

     

    실습 5: 짝수와 홀수 구분하기

    수를 입력받아 짝수인 경우에만 짝수라고 출력하는 프로그램을 작성해 보자. (if008.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void main()
    {
        int n;
        printf(" 수를 입력하세요 ");
        scanf("%d", &n);
        if (n % 2 == 0)
            printf(" %d 짝수.\n", n);
        return 0;
    }

     

    실습 6: 배수와 몫과 나머지 구하기

    입력된 수를 4로 나누어 몫과 나머지를 구하여 출력하고 입력받은 수의 다음번 4의 배수를 구하여 출력하고 수고했습니다.”를 출력해보자. 4의 배수가 입력된 경우에는 수고했습니다.”를 출력해 보자. (if009.c)

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    void main()
    {
    	int n;
    	printf(" 수를 입력하세요 ");
    	scanf("%d", &n);
    	if (n % 4 != 0)
    	{
    		printf("몫은 %d 나머지는 %d \n", n / 4, n % 4);
    		n += 4 - (n % 4);
    		printf("다음의 4의 배수는 %d\n", n);
    	}
    	printf("수고했습니다.");
    	return 0;
    }

     

    설명 : 행 설명

    n += 4 - (n%4)

    (n%4)는 나머지 값이므로 4에서 나머지 값을 뺀 값을 n에 더하면 다음번 4의 배수가 된다,

     

    반응형

    댓글