[C][기초 정리] 삼항 연산자, if, switch case

shclew·2021년 8월 17일
0

1. 삼항 연산자

다른 연산자들과 다르게 피연산자가 3개이다.
삼항 연산자의 원형: 조건식 ? 참일 때의 반환 값 : 거짓일 때의 반환 값

printf("연산 결과: %d\n", 1 == 5 ? 1 : 0); // 0

결과가 참이라면 1을, 거짓이라면 0을 반환한다.

2. 조건문 (if)

조건식을 비교하고 해당 조건식이 참이면 종속 문장을 실행, 거짓이면 탈출!
if ~ else, switch ~ case 두 개가 존재한다.

if ~ else의 원형:
     if (조건식) // 조건문의 시작
	{
		종속 문장;
	}
   	else if (조건식) // 조건문을 추가
	{
		종속 문장;
	}
     	else (조건식) // 나머지
	{
		종속 문장;
	}

주의할 점: if ~ else 문에서 조건식 뒤에 ;(세미콜론)을 작성하게 되면 종속 문장이 사라지게 된다.
if ~ else 문에서 종속 문장이 한 줄일 때는 {}(중괄호)를 생략할 수 있다.

국어, 수학, 영어 점수를 받아 평균점수로 등급을 출력하기

int kor, mat, eng;
double avg = (kor + mat + eng) / 3;	

printf("국어: ");
scanf("%d", &kor);

printf("수학: ");
scanf("%d", &mat);

printf("영어: ");
scanf("%d", &eng);


printf("평균: %.2f\n", avg);

if (avg >= 90)
	printf("등급: A");
else if (avg >= 80)
	printf("등급: B");
else if (avg >= 70)
	printf("등급: C");
else if (avg >= 60)
	printf("등급: D");
else
	printf("등급: F");

3. 조건문(switch~case)

switch ~ case 문에서 break 키워드는 해당 문법을 탈출하는 용도로 사용된다.
하지만 프로그래머가 의도적으로 break를 작성하지 않는 경우도 있다.
switch ~ case 문에서는 비교할 값 공간에는 정수, 정수로 변환할 수 있는 값, 정수가 저장된 변수만 작성할 수 있다. 각 case에 작성되는 값은 반드시 상수로 작성해줘야 한다.

switch ~ case의 원형:
     switch (비교할 값)
	   {
		case 해당 값: // 각 조건
			종속 문장;
			break;
            
		default: // 나머지
			종속 문장;
			break;
	   }
int kor, mat, eng;
double avg;

printf("국어: ");
scanf("%d", &kor);

printf("수학: ");
scanf("%d", &mat);

printf("영어: ");
scanf("%d", &eng); 

avg = (kor + mat + eng) / 3.0; 

printf("\n평균: %.2f\n", avg);

switch ((int)avg/10) // double을 int로 강제 형변환
	{
	case 9: 
		printf("등급: A");
		break;
	case 8:
		printf("등급: B");
		break;
	case 7:
		printf("등급: C");
		break;
	case 6:
		printf("등급: D");
		break;
	default:
		printf("등급: F");
		break;
	}

0개의 댓글