728x90
본 내용은 POSTECH '청년 AI · Big Data 아카데미 온라인 기초과정'을 수강하며 정리한 내용입니다.
Ⅴ 조건문
<조건문(if)과 문제 해결 예제 (성적처리)>
- 프로그램의 흐름 : 제어문
- Sequence (순차)
- Selection (선택) - 조건문
- branch : if, if-else
- cases : switch-case
- Repetition (반복) - 반복문
- loop : for, while, do-while
- 조건문(if)
- 조건의 결과(참 또는 거짓)에 따라 프로그램의 흐름을 제어하는 문장
- 어떠한 조건을 만족하면 그에 해당하는 일이 처리되는 문장
if (expression) statement1; next_statement; |
- 조건문(if-else)
- if에서 결과가 거짓인 경우 수행해야 할 문장이 있다면 키워드 else를 사용
if (expression) { statement_true; } else { statement_false; } next_statement; |
- if-else예제
- 값을 입력 받아 짝수와 홀수 판별
#include <stdio.h>
int main(void)
{
int a;
printf("정수 1개을 입력하세요 : ");
scanf("%d", &a);
if (a%2 == 0)
printf("입력한 %d는 짝수입니다 \n", a);
else
printf("입력한 %d는 홀수입니다 \n", a);
return 0;
}
- 2개의 값을 입력 받아 큰 값(max)을 출력
#include <stdio.h>
int main(void)
{
int a, b, max;
printf("Input two integers : ");
scanf("%d %d", &a, &b);
if (a>b)
max=a;
else
max=b;
printf("The maximum value is %d", max);
return 0;
}
- 3개의 값을 입력 받아 가장 작은 값(min)을 출력
#include <stdio.h>
int main(void)
{
int a, b, c, min;
printf("Input three integers : ");
scanf("%d %d %d", &a, &b, &c);
if (a<b)
min=a;
else
min=b;
if (c<min)
min=c;
printf("The minimum value is %d", min);
return 0;
}
- 조건문(else if)
- 조건 여러 개를 비교하여 조건에 맞는 문장을 수행
- 중첩된 if문에서 else 이후에 if문을 실행하는 구문 이용
if (expression1) { statement1; } else if (expression2) { statement2; } else if (expression3) { statement3; } else { statement4; } next_statement |
- 예제 : 성적처리
#include <stdio.h>
int main(void)
{
int score;
char grade;
printf("컴퓨터공학입문 점수를 입력하세요 : ");
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("컴퓨터공학입문 학점은 %c입니다. \n", grade);
printf("수고많으셨습니다! \n");
return 0;
}
- 예제 : 성적처리 확장
#include <stdio.h>
int main(void)
{
int math, english;
float sum, ave;
char grade;
printf("수학 점수를 입력하세요 : ");
scanf("%d", &math);
printf("영어 점수를 입력하세요 : ");
scanf("%d", &english);
sum = math+english;
ave = sum/2;
printf("평균 : %f \n", ave);
if (ave>=90)
grade = 'A';
else if (ave>=80)
grade = 'B';
else if (ave>=70)
grade = 'C';
else if (ave>=60)
grade = 'D';
else
grade = 'F';
printf("학점 : %c \n", grade);
return 0;
}
<조건문(switch)과 문제 해결 예제(윤년 계산)>
- 조건문(swich)
- 선택해야 할 조건이 여러 개 있을 경우 조건에 맞는 문장을 선택하여 수행
switch (expression) { case value1 : statement1; break; case value2 : statement2; break; default : statement; break; } next_statement; |
- expression, value : 정수 또는 정수 수식이어야 함
- swich case : 필수 항목
- break, default : 선택 항목
- swich(표현식)의 값을 case 상수식과 차례로 비교하여 표현식의 값과 일치하는 상수식이 있는 case문의 문장을 수행하고 break문을 만나면 swich문을 종료
- case문 안에 break문을 지정하지 않으면 최초로 break문이 나올 때까지 현재 실행된 문장 이후의 모든 상수식의 문장들을 실행
- 윤년 계산하는 방법
- 기원 연수가 4로 나누어 떨어지는 해는 우선 윤년
- year%4 == 0
- 그중에서 100으로 나누어 떨어지는 해는 평년
- year%100 != 0
- 다만 400으로 나누어 떨어지는 해는 다시 윤년으로 정함
- year%400 == 0
- 연결하면
- (year%4 ==0) && (year%100 != 0) || (year%400 == 0)
- 위의 조건식이 참이면 윤년
- switch예제 : 윤년 계산
#include <stdio.h>
int main(void)
{
int year, month, maxDay;
printf("년과 월을 입력 하세요 : ");
scanf("%d %d", &year, &month);
switch(month)
{
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 :
maxDay = 31;
break;
case 4 :
case 6 :
case 9 :
case 11 :
maxDay = 30;
break;
case 2 :
if ((year%4 == 0)&&(year%100 != 0)||(year%400 == 0))
{
maxDay = 29;
break;
}
else
{
maxDay = 28;
break;
}
default :
printf("입력이 잘못 되었습니다! \n");
}
printf("%d년 %d월의 말일은 %d일 입니다. \n", year, month, maxDay);
return 0;
}
728x90
'PROGRAMMING > C' 카테고리의 다른 글
[POSTECH MOOC] 컴퓨터공학 입문Ⅱ - 3 (0) | 2021.04.06 |
---|---|
[POSTECH MOOC] 컴퓨터공학 입문Ⅱ - 2 (0) | 2021.04.06 |
[POSTECH MOOC] 컴퓨터공학 입문Ⅰ - 4 (0) | 2021.04.05 |
[POSTECH MOOC] 컴퓨터공학 입문Ⅰ - 3 (0) | 2021.04.05 |
[POSTECH MOOC] 컴퓨터공학 입문Ⅰ - 2 (0) | 2021.04.05 |
댓글