C Language

C언어 Basic 조건문 if, switch 개념

567Rabbit 2024. 6. 18. 12:49

if문

if ( number > 0 )
	printf("양수입니다\n");  // 참인 경우
    
if ( temperature < 0 )
	printf("현재 영하입니다.\n");  // 참인 경우
printf("현재 온도는 %도 입니다.\n", temperature);  // 거짓인 경우

 

 

 

 

복합문

 

- 중괄호를 사용하여 문장들을 그룹핑한다.

- 블록(block)이라고도 한다.

- 단일문 대신 들어갈 수 있다.

// 복합문

// 조건식이 참이면 2개의 문장이 묶여서 실행된다.

if(score >= 60)
    {
	printf("합격입니다.\n")
        printf("장학금을 받을 수 있습니다.\n")
    }

 

 

 

 

if else문

// 1번 예시
if( number > 0 )
	printf("양수입니다.\n");
else
	printf("음수입니다.\n");
    
    
// 2번 예시
if( score >= 60 )
    {
        printf("합격입니다\n");
        printf("장학금을 받을 수 있습니다.\n");
    }
else
	{
        printf("불합격입니다\n");
        printf("다시 도전하세요.\n");
    }

 

 

 

 

복잡한 조건식

// 학점 결정 코드
if(score >= 80)&&(score < 90)
			grade = 'B';
    
// 공백 문자들의 개수를 세는 코드
if(ch ==''||ch == '\n'||ch == '\t')
			white_space++

 

 

 

 

중첩 if 

 

if문에 다시 if문이 포함 - 잘  쓰이지는 않는다

if(score >= 80)
	if(score >= 90)
		printf("당신의 학점은 A입니다.");

 

 

 

 

if  else if  else문

#inclue <stdio.h>

int main(void)
{
	int score;
    
    printf("성적을 입력하시오: ");
    scanf("%d", &score);
    
    if(score >= 90)
    	printf("합격: 학점A\n");
    else if (score >= 80)
    	printf("합격: 학점B\n");
    else if (score >= 70)
    	printf("합격: 학점C\n");
    else if (score >= 60)
    	printf("합격: 학점D\n");
    else
    	printf("합격: 학점F\n");
    return 0;
}

 

// 문자들을 분류하는 프로그램
#inclue <stdio.h>

int main(void)
{
	char ch;
    
    printf("문자를 입력하시오.");
    scanf("%c", &ch);
    
    if( ch>='A'&& ch<='Z' )
    	printf("%c는 대문자입니다.\n", ch);
    else if( ch>='a'&& ch<='z' )
    	printf("%c는 소문자입니다.\n", ch);
    else if( ch>='0'&& ch<='9' )
    	printf("%c는 숫자입니다.\n", ch);
    else
    	printf("%c는 기타문자입니다.\n", ch);
    return 0;
}

 

 

 

 

 

switch문

 

- 제어식의 값에 따라서 여러 경로 중에서 하나를 선택할 수 있는 제어 구조

- case의 인덱스는 꼭 0,1,2,3,4...의 순서가 아닌 2, 4, 7, 9 처럼 정하는 것도 가능하다.

#inclue <stdio.h>

int main(void)
{
    int number;
    
    printf("정수를 입력하시오: ");
    scanf("%d", &number);
    
    switch(number) {
    	case 0:
            printf("없음\n");
            break;
        case 1:
            printf("하나\n");
            break;
        case 2:
            printf("둘\n");
            break;
        default:                 //default 생략 가능
            printf("많음\n");
            break;
     }
     
     return 0;
}

 

 

 

 

허용되지 않는 인덱스 알아보기

#inclue <stdio.h>

int main(void)
{
    int number;
    
    printf("정수를 입력하시오: ");
    scanf("%d", &number);
    
    switch(number) {
    	case x:                 //변수는 사용할 수 없다
            printf("없음\n");
            break;
        case (x+2):             //변수가 들어간 수식은 사용할 수 없다
            printf("하나\n");
            break;
        case 0.001:              //실수는 사용할 수 없다
            printf("둘\n");
            break;
        case "001":              //(아스키코드)문자는 가능하지만 문자열은 사용할 수 없다
            printf("많음\n");
            break;
     }
     
     return 0;
}

 

 

 

 

 

아스키코드 인덱스에 대한 예제

#include <stdio.h>

int main(void)
{
    char symbol;
    
    printf("기호를 입력하시오: ");
    scanf(" %c", &symbol);
    
    switch(symbol) {
        case '+':
            printf("더하기 기호를 입력하셨습니다.\n");
            break;
        case '-':
            printf("빼기 기호를 입력하셨습니다.\n");
            break;
        default:
            printf("다른 기호를 입력하셨습니다.\n");
            break;
    }
    
    return 0;
}

 

 

 

 

 

goto문

#include <stdio.h>

int main(void)
{
    int i = 1;

    printf("구구단 3단:\n");

loop:
    printf("%d * %d = %d\n", 3 , i , 3 * i);
    i++;
    if (i == 10) goto end;
    goto loop;

end:
    return 0;
}