중첩 IF 조건문
중첩된 if문
다음 예제를 보자,
int main()
{
int year = 2015, month = 12, day = 31;
day++;
if (day > 31)
{
month++;
day = 1;
if (month > 12)
{
year++;
month = 1;
}
}
printf("Date : %d년 %d월 %d일 \n", year, month, day);
}
<결과>
<코드 설명>
중첩된 if~else~문
다음 예제를 보자.
#include <stdio.h>
int main()
{
int score = 95;
char grade;
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입니다.", score, grade);
}
<결과>
<코드 분석>
<코드>
int main()
{
int score = 63;
char grade;
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입니다.", score, grade);
}
<결과>
<코드분석>
if (score >= 70) grade = 'C';
else {<- 중괄호 생략가능
if (score >= 60) grade = 'D';
else grade = 'F';
}<- 중괄호 생략가능
#include <stdio.h>
int main()
{
int score = 63;
char grade;
if (score >= 90) grade = 'A'; //90점이상
else
if (score >= 80) grade = 'B'; //80점이상
else
if (score >= 70) grade = 'C';//70점이상
else
if (score >= 60) grade = 'D';//60점이상
else grade = 'F';
printf("당신의 점수는 %d이고, 등급은 %c입니다.", score, grade);
}
이와 같은 순서를 순서도로 표현하면 이렇다.
if~else if~else 구조에서는 위쪽에서 아래쪽으로 수식의 참 거짓 여부를 판단하고 수행하기 때문에 사용 빈도가 높은 조건 수식을 위쪽에 사용하는 것이 좋다.
<출처 : DO IT C언어 - 김성엽>