프로그래밍 언어 활용 part 1 - 조건문
조건문
[학습내용] | [학습목표] |
▪ if문 ▪ switch case문 |
▪ if 구문의 기본 문법을 알고 조건식을 구현할 수 있다. ▪ switch case 구문의 기본 문법을 알고 조건식을 구현할 수 있다. ▪ 표준 입력함수를 알고 사용할 수 있다. |
if문
1. if
기본 문법
▪ 조건을 판단하여 참인 경우 문장 수행
형식 | if(조건식) 문장 ; |
예제 | if( score < 60 ) printf(“불합격입니다.\n”); |
예제
▪ 변수 a가 양수이면 “Positive”를 출력하시오.
int a=5;
if (a>0)
printf(“Positive”);
▪ 변수 a가 양수이면 a에 1을 할당하고 “Positive”를 출력하시오.
int a=5;
if (a>0)
{
a=1;
printf(“Positive”);
} // 조건에 따른 수행 문장이 두 문장 이상인 경우는 { }로 시작과 끝을 알림
2. if ~ else
기본 문법
형식 | if (조건식) 문장1 ; else 문장2 ; |
예제 | if ( score < 60 ) printf(“불합격입니다.\n”); else printf(“합격입니다.\n”); |
예제
▪ 변수 a가 양수이면 “Positive”를 출력하고 음수이면 “Negative”를 출력하시오.
int a=5;
if (a>0)
printf(“Positive”);
else
printf(“Negative”);
▪ 변수 a가 홀수이면 “Odd”를 출력하고 짝수이면 “Even”를 출력하시오.
int a=5;
if (a%2)
printf(“Odd”);
else
printf(“Even”);
3. if ~ else if ~ else
기본 문법
형식 | if (조건식 1) 문장1 ; else if (조건식 2) 문장2 ; else if (조건식 3) 문장3 ; ∙∙∙∙∙∙∙ else 문장n ; |
예제 | if ( age < 19 ) printf(“청소년 요금입니다.\n”); else if ( age >=65 ) printf(“경로 우대 요금입니다.\n”); else printf(“성인 요금입니다.\n”); |
예제
▪ 변수 a가 양수이면 “Positive”를 출력하고 음수이면 “Negative”를, 0이면 “Zero”를 출력하시오.
int a=5;
if (a>0)
printf(“Positive”);
else if (a<0)
printf(“Negative”);
else
printf(“Zero”);
4. 중첩 if문
▪ 변수 a가 양수인 경우 100 이상이면 “Great”, 100 미만이면 “Good”, 음수이면 “Negative”, 0이면 “Zero”를 출력하시오.
int a=5;
if (a>0)
{
if(a>=100)
printf(“Great”);
else
printf(“Good”);
}
else if (a<0)
printf(“Negative”);
else
printf(“Zero”);
switch case문
1. switch문
기본 문법
switch( 값 )
{
case 값1 : 문장1-1; 문장1-2; break;
case 값2 : 문장2-1; 문장2-2; break;
case 값3 : 문장3-1; 문장3-2; break;
. . .
default : 문장d1; 문장d2;
}
예제 1
int a=2;
switch( a )
{
case 1 : printf(“one”); break;
case 2 : printf(“two”); break;
case 3 : printf(“three”); break;
default : printf(“other”);
}
char a=‘K’;
switch( a )
{
case ‘A’ : printf(“Ahn”); break;
case ‘L’ : printf(“Lee”); break;
case ‘K’ : printf(“Kim”); break;
default : printf(“other”);
}
예제 2
int a=2;
switch( a )
{
case 1 : printf(“one”);
case 2 : printf(“two”);
case 3 : printf(“three”);
default : printf(“other”);
}
예제 3
int a=2;
switch( a%3 )
{
case 0 : printf(“zero”); break;
case 1 : printf(“one”); break;
case 2 : printf(“two”); break;
}
char a=85;
switch( a )
{
case a>80 : printf(“one”); break;
case a<30 : printf(“two”); break;
default : printf(“other”);
}
if와 switch 비교
char grade; scanf(“%c”, &grade); if ( grade == ‘A’) printf(“Excellent”); else if ( grade == ‘B’) printf(“Good”); else if ( grade == ‘C’) printf(“Normal”); else if ( grade == ‘D’) printf(“Bad”); else printf(“Fail”); |
char grade; scanf(“%c”, &grade); switch(grade) { case ‘A’ : printf(“Excellent”); break; case ‘B’ : printf(“Good”); break; case ‘C’ : printf(“Normal”); break; case ‘D’ : printf(“Bad”); break; default : printf(“Fail”); break; } |
2. 입력문
scanf() 소개
▪ scanf()를 이용한 입력
▪ 표준입력으로부터 다양한 자료를 지정한 변수에 저장
▪ 형식지정자(%d %c %f %lf) 사용
▪ 공백, enter 전 까지를입력
▪ 형식 : scanf(“형식지정자”, &변수명)
정수 입력
▪ 형식지정자 : %d
int a, b;
scanf(“%d”, &a);
printf(“%d”, a);
scanf(“%d”, &b);
printf(“%d” ,b);
scanf(“%d %d”,&a, &b);
printf(“%d %d”, a, b);
실수 입력
▪ 형식지정자 : %f(float) %lf(double)
float a; double b;
scanf(“%f”, &a);
printf(“%f”, a);
scanf(“%lf”, &b);
printf(“%f” ,b);
scanf(“%f %lf”,&a, &b);
printf(“%f %f”, a, b);
문자 입력
• 형식지정자 : %c
• 단일문자
char a,vb;
scanf(“%c %c”, &a, &b);
printf(“%c %c”, a, b);
scanf(“%c”, &a);
printf(“%c”, a);
scanf(“%c”, &b);
printf(“%c” ,b);
평가하기
Q1. if 구문과 관련하여 옳지 않은 설명은 무엇인가?
① if문 내에 if문을 포함시킬 수 있다.
② 조건에 따라 수행할 문장이 2문장 이하이면 { }는 생략 가능하다.
③ if ~ else if를 사용할 때 반드시 else문을 사용하지 않아도 된다.
④ if문에서 조건에 따라 수행할 문장은 여러 문장을 기술할 수 있다.
한 문장인 경우만 { }가 생략 가능합니다.
Q2. switch ~ case 구문에서 분기 값이 해당하는 case가 없을 경우, 수행할 문장을 기술할 때 사용할 문장은 무엇인가?
① break
② default
③ true
④ all
해당하는 case가 없는 경우에는 default에 기술한 문장을 수행합니다.
Q3. scanf()를 이용하여 표준 입력에서 double형 데이터를 입력하고자 할 때 형식문자로 옳은 것은 무엇인가?
① %c
② %d
③ %f
④ %lf
연산 결과 정수로 몫과 나머지가 출력됩니다.
학습정리
1. if문
• 조건에 따라 분기되는 if문은 크게 3가지 형태로 구분됨
• if문 내에 중첩해서 if문을 기술하는 것이 가능함
• 조건에 따라 수행하는 문장이 한 문장이면 { }는 생략 가능함
2. switch case문
• switch문에서 분기 조건으로 상수, 정수, 수식이 사용될 수 있음
• 조건에 일치하는 case가 없는 경우 수행할 문장은 default에 기술함
• 표준입력 함수로 scanf()를 사용하고 입력을 위해 형식지정자를 사용함
• 입력 버퍼를 비우는 함수로 fflush(stdin);함수가 있음