실행결과 예제설명 단순 if 문을 활용하여 두 수의 +

Download Report

Transcript 실행결과 예제설명 단순 if 문을 활용하여 두 수의 +

5. 조건문
이 장에서 다룰 내용
1.
if 문
2.
중첩 if 문
.3
switch ~ case 문
01_if 문
 선택 제어문
 선택의 기준을 제시하고, 상황에 따라 다른 값이나 내용을 적용
 기준이 부합할 때까지 특정 작업을 반복
 기본 if 문
 조건식이 참일 때 실행, 거짓일 때는 아무 것도 하지 않음
if (조건식)
실행할 문장;
[기본예제 5-1] 기본 if 문 사용 예 ①
01
02
03
04
05
06
07
08
09
#include <stdio.h>
int main()
{
int a = 99;
if (a < 100)
printf ("100보다 작군요..\n");
}
a가 100보다 작으므로 참
01_if 문
 9행
 현재 a에 99가 들어있으므로, 조건식(a < 100)의 결과는 참
[기본예제 5-2] 기본 if 문 사용 예 ②
01
02
03
04
05
06
07
08
09
10
11
12
#include <stdio.h>
int main()
{
int a = 200;
if (a < 100)
printf ("100보다 작군요..\n");
printf ("거짓이므로 앞의 문장은 안보이겠죠?\n");
printf ("프로그램 끝! \n");
}
조건식이 참일 경우 실행
조건식이 거짓일 경우
실행할 것으로 예상됨
01_if 문
 줄바꿈의 함정
 조건식이 참이면 바로 아래에 있는 한 문장만 실행
 7행~11행의 명확한 표현
if (a < 100)
printf ("100보다 작군요..\n");
printf ("거짓이므로 이 문장은 안보이겠죠?\n");
printf ("프로그램 끝! \n");
if (a < 100)
printf ("100보다 작군요..\n");
printf ("거짓이므로 이 문장은 안보이겠죠?\n");
printf ("프로그램 끝! \n");
[기본예제 5-3] 기본 if 문 사용 예 ③
01
02
03
04
05
06
07
08
09
10
11
12
13
14
#include <stdio.h>
int main()
{
int a = 200;
if (a < 100)
{
printf ("100보다 작군요..\n");
printf ("거짓이므로 앞의 문장은 안보이겠죠?\n");
}
printf ("프로그램 끝! \n");
}
조건식이 참일 경우
실행
01_if 문
 if ~ else 문
 참일 때 실행하는 내용과 거짓일 때 실행하는 내용이 다를 때 사용
if (조건식)
실행할 문장 1;
else
실행할 문장 2;
[기본예제 5-4] if ~ else 문 사용 예
01
02
03
04
05
06
07
08
09
10
11
#include <stdio.h>
int main()
{
int a = 200;
if (a < 100)
printf ("100보다 작군요..\n");
else
printf ("100보다 크군요..\n");
}
a가 100보다 작으면 출력
a가 100과 같거나 크면 출력
01_if 문
 7행~10행
 현재 a 값이 200이므로 조건식(a < 100)의 결과는 거짓
[기본예제 5-5] 블록을 활용한 if ~ case 문 사용 예 ①
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
int main()
{
int a = 200;
if (a < 100)
{
printf ("100보다 작군요..\n");
printf ("참이면 이 문장도 보이겠죠?\n");
}
else
{
printf ("100보다 크군요..\n");
printf ("거짓이면 이 문장도 보이겠죠?\n");
}
printf ("프로그램 끝! \n");
}
a가 100보다 작으면 실행
a가 100과 같거나 크면 실행
01_if 문
 7행~18행
 현재 a 값이 200이므로 조건식 결과가 거짓
 else 문 실행(13~16행)
 18행 실행(참, 거짓과 관계없이 무조건 실행)
 괄호 { }
 참 또는 거짓인 경우에 수행할 문장이 두 줄 이상일 때 사용
[응용예제 5-6] 블록을 활용한 if ~ case 문 사용 예 ②
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
#include <stdio.h>
int main()
{
int a;
printf("정수를 입력하세요 : ");
scanf("%d", &a);
if ( [a %
①2; ] == 0)
{
printf ("짝수를 입력했군요..\n");
}
else
{
printf ("홀수를 입력했군요..\n");
}
}
정수를 입력받음
입력값이 짝수일 때
실행
입력값이 짝수가 아닐
때 실행
02_중첩 if 문
 중첩 if 문
 if 문을 수행한 후 또 다른 if 문을 사용
 가능하면 블록을 사용하여 명확히 하는 것이 좋음
if (조건식 1) {
if(조건식 2)
실행할 문장 1;
else
실행할 문장 2;
}
else
실행할 문장 3;
[기본예제 5-7] 중첩 if 문 사용 예 ①
01 #include <stdio.h>
02
03 int main()
04 {
05
int a = 75;
06
07
if (a > 50)
08
{
09
if (a < 100)
10
{
11
printf ("50보다 크고 100보다 작군요..\n");
12
}
13
else
14
{
15
printf ("와~~ 100보다 크군요..\n");
16
}
17
}
a가 50보다 큰 경우
a가 50보다 크고,
100보다 작은 경우
a가 50보다 크고,
100보다 크거나 같은
경우
[기본예제 5-7] 중첩 if 문 사용 예 ①
17
18
19
20
21
22 }
}
else
{
a가 50보다 작거나 같은 경우
printf ("에게~ 50보다 작군요..\n");
}
[응용예제 5-8] 중첩 if 문 사용 예 ②
01 #include <stdio.h>
02
03 int main()
04 {
05
int a;
06
07
printf("점수를 입력하세요 : ");
08
scanf("%d", &a);
09
10
if ([a >=
① 90
] )
11
printf ("A");
12
else
13
if ([a >=
② 80
] )
14
printf ("B");
15
else
점수 입력
90점 이상이면 A
90점 이하일 때
각 점수대별로 다시 확인
• 80점 이상이면 B
• 70점 이상이면 C
• 60점 이상이면 D
• 그 외에는 F
[응용예제 5-8] 중첩 if 문 사용 예 ②
16
if (a >= 70)
17
printf ("C");
18
else
19
if (a >= 60)
20
printf ("D");
21
else
22
printf ("F");
23
24
printf (" 학점 입니다. \n");
25 }
02_중첩 if 문
 10행~24행
 a 값이 90 이상일 때와 미만일 때를 먼저 구분
 90 미만인 경우, 또 다시 조건식 사용
02_중첩 if 문
 10행~24행
 a 값이 90 이상일 때와 미만일 때를 먼저 구분
 90 미만인 경우, 또 다시 조건식 사용
02_switch ~ case 문
 switch ~ case 문
 참과 거짓 이외의 다른 선택이 가능한 경우에 사용
 여러 개 중 하나를 선택한다는 의미  다중 분기
 조건 값(정수 값)에 따라 case 문 실행
switch(정수값){
case 정수값 1 :
실행할문장 1;
break;
case 정수값 2 :
실행할문장 2;
break;
default :
실행할문장 3;
break;
}
[기본예제 5-9] switch ~ case 문 사용 예 ①
01 #include <stdio.h>
02
03 int main()
04 {
05
int a;
06
07
printf("1 ~ 4 중에 선택하세요 : ");
08
scanf("%d", &a);
09
10
switch (a)
11
{
12
case 1 :
13
printf ("1을 선택했다\n");
14
break;
15
case 2:
16
printf ("2를 선택했다\n");
a 값에 따라 분기
a가 1이면 출력한 후 switch 블록을
빠져나옴
[기본예제 5-9] switch ~ case 문 사용 예 ①
17
18
19
20
21
22
23
24
25
26
27 }
break;
case 3:
printf ("3을 선택했다\n");
break;
case 4:
printf ("4를 선택했다\n");
break;
default :
printf ("이상한걸 선택했다.\n");
}
a가 1~4 중 하나가 아닐 때 실행
02_switch ~ case 문
 입력받은 정수값을 switch 문에 사용
 10행~25행
02_switch ~ case 문
 break의 역할
 switch~case 문을 빠져나가는 역할
 실행문의 마지막에 반드시 써줘야 함
switch(a){
case 1:
printf(“1을 선택했다\n”);
case 2:
printf(“2를 선택했다\n”);
case 3:
printf(“3을 선택했다\n”);
case 2:
printf(“4를 선택했다\n”);
default:
printf(“이상한 걸 선택했다.\n”);
break가 없어 모든
실행문 출력
[응용예제 5-10] switch ~ case 문 사용 예 ②
01 #include <stdio.h>
02
03 int main()
04 {
05
int year;
06
07
printf("출생년도를 입력하세요 : ");
08
scanf("%d", &year);
09
% 12 ] )
10
switch ([ year①
11
{
12
case 0 : printf ("원숭이띠\n"); break;
13
case 1 : printf ("닭띠\n"); break;
14
case 2 : printf ("개띠\n"); break;
15
case 3 : printf ("돼지띠\n"); break;
16
case 4 : printf ("쥐띠\n"); break;
12로 나눈 나머지
값에 따라 결과 출력
[응용예제 5-10] switch ~ case 문 사용 예 ②
17
18
19
20
21
22
23
24
}
25 }
case
case
case
case
case
case
case
5 : printf ("소띠\n"); break;
6 : printf ("호랑이띠\n"); break;
7 : printf ("토끼띠\n"); break;
8 : printf ("용띠\n"); break;
9 : printf ("뱀띠\n"); break;
10 : printf ("말띠\n"); break;
11 : printf ("양띠\n"); break;
[예제모음_10] 단순 if 문을 활용한 간단한 계산기
예제설명
① 단순 if 문을 활용하여 두 수의 +, -, *, /, % 연산을 수행하는 프로그램
실행결과
예제모음_10 소스
01 #include <stdio.h>
02
03 int main()
04 {
05
int a, b;
06
char ch;
07
08
printf("첫번째 수를 입력하세요 : ");
09
scanf("%d", &a);
10
printf("계산할 연산자를 입력하세요 : ");
11
scanf("%*c%c", &ch);
12
printf("두번째 수를 입력하세요 : ");
13
scanf("%d", &b);
14
15
if (ch == '+')
16
printf("%d + %d = %d 입니다. \n", a, b, a+b);
정수 변수 선언
연산자용 문자 변수 선언
첫 번째 수 입력
연산자 입력
두 번째 수 입력
기본 if 문을 사용한 연산 수행
예제모음_10 소스
17
18
19
20
21
22
23
24
25
26
27
28
29 }
if (ch == '-')
printf("%d - %d = %d 입니다. \n", a, b, a-b);
if (ch == '*')
printf("%d * %d = %d 입니다. \n", a, b, a*b);
if (ch == '/')
printf("%d / %d = %f 입니다. \n", a, b, a/(float)b);
if (ch == '%')
printf("%d %% %d = %d 입니다. \n", a, b, a%b);
[예제모음_11] 중복 if 문을 활용한 간단한 계산기
예제설명
① 중첩 if 문을 활용하여 두 수의 +, -, *, /, % 연산을 수행하는 프로그램
실행결과
예제모음_11 소스
01 #include <stdio.h>
02
03 int main()
04 {
05
int a, b;
06
char ch;
07
08
printf("첫번째 수를 입력하세요 : ");
09
scanf("%d", &a);
10
printf("계산할 연산자를 입력하세요 : ");
11
scanf("%*c%c", &ch);
12
printf("두번째 수를 입력하세요 : ");
13
scanf("%d", &b);
14
15
if (ch == '+')
16
printf("%d + %d = %d 입니다. \n", a, b, a+b);
정수 변수 선언
연산자용 문자 변수 선언
첫 번째 수 입력
연산자 입력
두 번째 수 입력
중첩 if 문을 사용한 연산 수행
예제모음_11 소스
17
18
19
20
21
22
23
24
25
26
27 }
else if (ch == '-')
printf("%d - %d = %d 입니다. \n", a, b, a-b);
else if (ch == '*')
printf("%d * %d = %d 입니다. \n", a, b, a*b);
else if (ch == '/')
printf("%d / %d = %f 입니다. \n", a, b, a/(float)b);
else if (ch == '%')
printf("%d %% %d = %d 입니다. \n", a, b, a%b);
else
printf("연산자를 잘못 입력했습니다. \n");
그 외의 경우 실행
[예제모음_12] switch~case 문을 활용한 간단한 계산기
예제설명
① switch ~ case 문을 활용하여 두 수의 +, -, *, /, % 연산을 수행하는
프로그램
실행결과
예제모음_12 소스
01 #include <stdio.h>
02
03 int main()
04 {
05
int a, b;
06
char ch;
07
08
printf("첫번째 수를 입력하세요 : ");
09
scanf("%d", &a);
10
printf("계산할 연산자를 입력하세요 : ");
11
scanf("%*c%c", &ch);
12
printf("두번째 수를 입력하세요 : ");
13
scanf("%d", &b);
14
15
switch (ch)
16
{
17
case '+' :
정수 변수 선언
연산자용 문자 변수 선언
첫 번째 수 입력
연산자 입력
두 번째 수 입력
switch~case 문을 사용한
연산 수행
예제모음_12 소스
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
}
35 }
printf("%d + %d = %d 입니다. \n", a, b, a+b);
break;
case '-' :
printf("%d - %d = %d 입니다. \n", a, b, a-b);
break;
case '*' :
printf("%d * %d = %d 입니다. \n", a, b, a*b);
break;
case '/' :
printf("%d / %d = %d 입니다. \n", a, b, a/b);
break;
case '%' :
printf("%d %% %d = %d 입니다. \n", a, b, a%b);
break;
default :
printf("연산자를 잘못 입력했습니다. \n");
요약
if 문
① 조건식이 참일 대와 거짓일 때 각각 다른 작업을 수행
② if 문의 구조
if (조건식)
{ 참일 때 실행할 문장들}
else
{ 거짓일 때 실행할 문장들}
③ 중첩 if 문 : 처리해야 할 조건이 세 가지 이상일 때 사용
switch~case
① 다양한 경우의 수가 있을 때 사용
② 중첩 if 문보다 간결한 표현 가능
switch(정수값){
case 정수값 1:
실행할 문장 1;
break;
case 정수값 2:
실행할 문장 2;
break;
default:
실행할 문장 3;
break;
}