08. 조건문
if ~ else if ~else 조건문
scanf로 입력을 받아서 처리할 수 있도록 살짝 바꿔서 구현해보았다.
#include <stdio.h>
void main()
{
int score;
char grade;
printf("점수를 입력하세요.\n");
scanf("%d", &score);
if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';
printf("당신의 점수는 %d이고 등급은 %c입니다\n", score, grade);
}
switch 조건문
"변수값이 이미 정해져 있는 상수들과 비교할 때는 switch 조건문이 유리하다.'
#include <stdio.h>
void main()
{
int score;
char grade;
printf("점수를 입력하세요.\n");
scanf("%d", &score);
switch (score / 10) {
case 10:
case 9:
grade = 'A';
break;
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'F';
break;
}
printf("당신의 점수는 %d이고 등급은 %c입니다\n", score, grade);
}
switch 문으로 나열식으로 배열하다 보니 길어보인다.
하지만, 소스코드가 더 길다고 실제 프로그램의 실행 동작이 느려지진 않는다.
지금 같은 경우에는 switch 문이 더 연산이 적고 간결하여 기계어로 번역하면 더 좋은 코드가 나온다.
소스 코드가 간결하다고 기계어 코드까지 간결한 건 아니다.