본문 바로가기

공부/C언어

C언어 - (7) : 조건문

if 조건문

if (조건절)
{
	실행문;
}

if 조건문은 위와 같은 형식을 가지며, 조건에 해당하는 경우에 실행문을 실행시킨다.

#include <stdio.h>
int main(void)
{
    int num;
    printf("정수 입력: ");
    scanf("%d", &num);
    
    if (num<0)
    	printf("입력 값은 0보다 작다. \n");
        
    if (num>0)
    	printf("입력 값은 0보다 크다. \n");
        
    if (num==0)
    	printf("입력 값은 0이다. \n");
        
    return 0;
}

 

위의 예시처럼 각각의 if문에 해당하는 조건을 명시해 코드를 작성할 수도 있지만,

조건에 해당하는 경우(if)와 그렇지 않은 경우(else)로 나누에 구분해 작성할 수도 있다.

// if ~ else
#include <stdio.h>
int main(void)
{
    int num;
    printf("정수 입력: ");
    scanf("%d", &num);
    
    if (num<0)
    	printf("입력 값은 0보다 작다. \n");
        
    else if (num>0)
    	printf("입력 값은 0보다 크다. \n");
        
    else
    	printf("입력 값은 0이다. \n");
        
    return 0;
}

 

조건 연산자(삼항 연산자)

`(condition) ? A : B`의 형태를 갖는 연산자로, 조건이 참인 경우에 A를 반환하고 거짓인 경우에 B를 반환한다.

int main(void)
{
    int num, abs;
    printf("정수 입력: ");
    scanf("%d", &num);
    
    abs = num>0 ? num:num*(-1); // num이 양수인 경우 그대로, 음수인 경우 양수로 return
    printf("절댓값: %d \n", abs);
    return 0;
}

break : 반복문 탈출

`break`를 사용하면 `break`가 속해있는 반복문을 탈출하게 된다.

int main(void)
{
    int sum=0, num=0;
    
    while (1) // 무한 루프
    {
    	sum+=num;
        if (sum>5000)
        	break; // sum>5000이면 while문 탈출
        num++;
    }
    
    printf("sum: %d \n", sum);
    printf("num: %d \n", num);
    
    return 0;
}

continue : 건너뛰기(생략)

`continue`를 사용하면 조건에 해당하는 경우, 해당 부분을 생략하고 넘어가게 된다.

int main(void)
{
    for (int num=0; num<3; num++)
    {
    	if (num==1)
        	continue;
    	printf("num: %d \n", num);
    } 
    return 0;
}
/* output
num: 0
num: 2
*/

switch문

`switch`문의 기본 구성은 다음과 같다.

switch(변수)
{
    case a:
    	실행문;
    case b:
    	실행문;
        break;
    default:
    	실행문;
}

switch문은 if처럼 조건문이지만, 1:1의 조건만을 설정할 수 있으며 `num>=1`과 같은 범위나 연산에 대한 조건을 적용할 수 없다.

 

실행 방식은 if절과는 차이가 존재하는데 if절은 조건에 해당하는 실행문만을 실행하는 반면에, switch문의 경우에는 조건에 해당하는 case로 이동한 뒤에 해당 case이하의 모든 실행문을 실행하며, 그 과정에서 `break`가 있는 경우에 그 곳에서 실행을 멈추게 된다.

#include <stdio.h>
int main(void)
{
    int num;

    printf("insert num: ");
    scanf("%d", &num);

    switch (num) 
    {
        case 1:
            printf("num is 1 \n");
            break;
        case 2:
            printf("num is 2 \n");
        case 3:
            printf("num is 3 \n");
        default:
            printf("default \n");
    }

    return 0;
}

위 예시에서 `num`에 1을 입력하게 되면, case 1으로 이동해 "num is 1"을 출력한 후에 `break`로 인해 출력을 멈추게 된다.

`num`이 2인 경우에는 case 2이하의 실행문을 실행하는 과정에서 `break`문이 없기 때문에, "num is 2", "num is 3", "default"를 모두 출력한다.

 

switch (n)
{
    case 'a':
    case 'A':
    	실행문 a;
        break;
    case 'b':
    case 'B':
    	실행문 b;
        break;
}

또한, 위와 같이 하나의 공통된 실행문을 실행하기 위한 조건에 대해 여러 case를 지정해 사용하는 것도 가능하며,

default문을 생략하는 것도 가능하다.

'공부 > C언어' 카테고리의 다른 글

C언어 - (8) : 함수/지역변수/전역변수/static변수  (0) 2024.10.10
C언어 - 난수 생성  (1) 2024.10.09
C언어 TIL (241007)  (0) 2024.10.07
C언어 - (6) : 반복문  (0) 2024.10.07
C언어 - (5) : printf / scanf  (3) 2024.10.06