Professional Documents
Culture Documents
쉽게 풀어쓴 C언어 Express 쉽게 풀어쓴 C언어 Express
쉽게 풀어쓴 C언어 Express 쉽게 풀어쓴 C언어 Express
제6장 조건문
이번 장에서 학습할 내용
5장까지는
문장들이
순차적으로
•조건문이란? 실행된다고 하였다.
•if 문 하지만 필요에
•if, else 문 따라서 조건이
만족되면 문장의
•중첩 if 문 실행 순서를 변경할
•switch 문 수 있는 기능이
•break문 제공된다.
•continue문
if문
조건에 따라서 결정을 내리는 경우에 사용
조건식이 참으로 계산되면
if( 조건식 )
문장; 문장이 실행된다.
if문의 예
number 가 0보다 크면
“양수입니다”를 출력한다.
if ( temperature < 0 )
printf("현재 영하입니다.\n"); // 조건이 참일 때만 실행
int main(void)
{
int number;
만약
printf("정수를 입력하시오:"); 사용자가 -5를
입력하였다면
scanf("%d", &number);
return 0;
}
if-else 문
거짓
날씨가 좋은가?
?
참
테니스를 친다. 공부를 한다.
문장1;
else 조건식이 거짓이면 실행된다.
문장2;
if-else 문
if ( score >= 60 ) score가 60이상이면 실행
printf("합격입니다.\n");
else score가 60미만이면 실행
printf("불합격입니다.\n");
if ( score >= 60 )
{ score가 60이상이면 실행
printf("합격입니다.\n");
printf("장학금도 받을 수 있습니다.\n");
}
else
score가 60미만이면 실행
{
printf("불합격입니다.\n");
printf("공부하세요.\n");
}
복잡한 조건식도 가능
학점 결정 코드
공백 문자들의 개수를 세는 코드
int main(void)
{
int number;
printf("정수를 입력하시오:");
scanf("%d", &number); 2로 나누어서 나머지가 0이면
짝수이다.
if( number % 2 == 0 )
printf("입력된 정수는 짝수입니다.\n");
else 정수를 입력하시오: 50
printf("입력된 정수는 홀수입니다.\n"); 입력된 정수는 짝수입니다.
PASS
return 0;
}
예제 #2
// 나눗셈을 하기 전에 분모가 0인지를 if-else 문을 이용하여 검사
#include <stdio.h>
정수를 입력하시오: 5
int main(void) 정수를 입력하시오: 4
{ 결과는 1입니다.
int n1, n2, n3;
if( 조건식1 )
if( 조건식2 )
문장;
중첩 if
if( score >= 80 )
if( score >= 90 )
printf("당신의 학점은 A입니다.\n");
if( n1 < n2 )
10 < 20 이고 10 < 30
if( n1 < n3 ) 이므로 실행
min = n1; 정수 3개를 입력하시오:10
else 20 30
min = n3; 제일 작은 수는 10입니다.
else
if( n2 < n3 )
min = n2;
else
min = n3;
printf("제일 작은 수는 %d입니다\n", min);
return 0;
}
연속적인 if
if( 조건식1 )
문장1;
else if( 조건식2 )
문장2;
else if( 조건식3 )
문장3;
else
문장4;
학점 결정 예제
#include <stdio.h>
int main(void)
{
int score;
int main(void)
{
char ch;
return 0;
}
실습: 산술 계산기
수식을 입력하시오
(예: 2 + 5)
>>2 + 5
2+5=7
소스
#include <stdio.h>
int main(void)
{
char op;
int x, y, result;
printf("수식을 입력하시오");
printf("(예: 2 + 5) ");
printf(">>"); 수식을 입력하시오
scanf("%d %c %d", &x, &op, &y); (예: 2 + 5)
>>2 + 5
if( op == '+' ) 2+5=7
result = x + y;
else if( op == '-' )
result = x - y;
else if( op == '*' )
result = x * y;
else if( op == '/' )
result = x / y;
else if( op == '%' )
result = x % y;
else
printf("지원되지 않는 연산자입니다. ");
break는
문장의 실행을
끝내고
switch 문을
탈출하는데
사용합니다.
예제
int main(void)
{
int number;
printf("정수를 입력하시오:");
scanf("%d", &number);
switch(number)
{
case 0:
printf("없음\n");
정수를 입력하시오: 1
break ;
하나
case 1:
printf("하나\n");
break ;
case 2:
printf("둘\n");
break ;
default:
printf("많음\n");
break;
}
}
사용자가 1을 입력하는 경우
break가 생략되는 경우
break를
만날 때까지
계속 문장을
실행합니다.
의도적인 break생략
switch(number)
{
case 0:
printf("없음\n");
break; 2개의 경우를
case 1:
하나로 묶어서
처리하기
printf("하나\n");
위하여 이러한
break;
기법을 사용
case 2:
case 3:
printf("두서너개\n");
break;
default:
printf("많음\n");
break;
}
default 문
어떤 case문과도 일치되지 않는 경우에 선택
switch 문과 if-else 문
int main(void) switch(number)
{ {
int number; case 0:
scanf("%d", &number); printf("없음\n");
break;
case 1:
if( number == 0 ) printf("하나\n");
printf("없음\n"); break;
else if( number == 1 ) case 2:
printf("하나\n"); printf(“둘\n");
else if( number == 2 ) break;
printf("둘\n"); default:
else printf("많음\n");
printf("많음\n"); break;
} }
switch 문에서 주의할 점
switch(number)
{
case x: // 변수는 사용할 수 없다.
printf("x와 일치합니다. ");
break;
case (x+2): // 변수가 들어간 수식은 사용할 수 없다.
printf("수식과 일치합니다. ");
break;
case 0.001: // 실수는 사용할 수 없다.
printf("실수");
break;
case “001”: // 문자열은 사용할 수 없다.
printf("문자열");
break;
}
예제
// 달의 일수를 계산하는 프로그램
#include <stdio.h>
int main(void)
{
int month, days;
switch(month)
{
case 2: 달을 입력하시오: 12
days = 28; 12월의 일수는 31입니다.
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
printf("%d월의 일수는 %d입니다.\n", month, days);
return 0;
}