[4.1d] if (조건1) { 실행문1 }
else if (조건2) { 실행문2 }
else { 실행문3 }
◎ 문법; if (조건1) { 실행문1 }
else if (조건2) { 실행문2 }
else { 실행문3 }
◎ 의미; (조건1)이 맞으면 {실행문1}을 실행하고
(조건2)가 맞으면 {실행문2}을 실행하고
그렇지 않으면 {실행문3}을 실행하라.
◎ 실행문1, 실행문2, 실행문3은 한 개 이상의 실행문(들)이 올 수 있다.
◎ 'else if' 다음에 else 또는 else if를 추가할 수 있다.
◎ if ... else if ... else if ...; 이와 같이 else if를 반복할 수 있다.
◎ 'else'구문은 if문의 끝에 붙을 수 있지만,
'else'구문 다음에 'else if'가 올 수는 없다.
아래와 같은 문장은 오류이다.
if (조건식1) { 실행문1; }
else { 실행문2; }
else if (조건식2) { 실행문3; }
◎ 예; 점수가 90 이상인가? 그렇다면 A를 출력하라.
점수가 80이상 90미만이면, B를 출력하라.
그렇지 않으면, "B 아래"를 출력하라.
예문 ( 04-if-01d.cpp);
#include <stdio.h>
#include <conio.h> // getch()
main() {
int grade;
printf("\n 성적을 입력하시오 (0에서 100까지의 정수) >> ");
scanf("%d", &grade);
printf("\n 점수= %d", grade); getch();
if (grade >= 90) { printf(" A "); }
else if (grade >= 80 && grade < 90) { printf(" B "); }
else { printf(" B 아래 "); }
printf("\nEND OF PROGRAM\n"); getch();
}
출력; 입력값= 88; 출력; B
입력값= 90; 출력; A
입력값= 77; 출력; B 아래
[예제] 입력 정수(num)가 0 보다 작으면, "음수"를 출력한다.
그렇지 않으면, 2로 나누어지면, "짝수"를 출력하고,
그렇지 않으면, "홀수"를 출력 하도록
아래 부분을 수정하시오.
if (grade >= 90) { printf(" A "); }
else if (grade >= 80 && grade < 90) { printf(" B "); }
else { printf(" B 아래 "); }
[답] (마우스 끌기)
[ if (num < 0) { printf(" 음수 "); }
else if (num%2 == 0) { printf(" 짝수 "); }
else { printf(" 홀수 "); } ]
[실습문제] 세 개의 점수를 입력받고, 그 평균이 90 이상이면, "우수"를 출력하고,
60 미만이면 "실격"을 출력하고,
그렇지 않으면, "합격"을 출력하는 코드를 작성하시오.
(실행file= if-우수-합격-실격.exe)
예; 90 85 95 -> 우수
79 78 80 -> 합격
60 70 62 -> 합격
59 71 49 -> 실격
◎ 'if ... else if ... else if'의 연습
if (조건1) { 실행문1 }
else if (조건2) { 실행문2 }
else if (조건3) { 실행문3 }
의미; (조건1)이 맞으면 {실행문1}을 실행하고
(조건2)가 맞으면 {실행문2}을 실행하고
(조건3)가 맞으면 {실행문3}을 실행한다.
예문 ( 04-if-01e.cpp);
점수가 90 이상인가? 그렇다면 A를 출력하라.
점수가 80이상 90미만이면, B를 출력하라.
점수가 70이상 80미만이면, C를 출력하라.
#include <stdio.h>
#include <conio.h> /* getch() */
main() {
int grade;
printf("\n 성적을 입력하시오 (0에서 100까지의 정수) >> "); scanf("%d", &grade);
printf("\n 점수= %d", grade); getch();
if (grade >= 90) { printf(" A "); }
else if (grade >= 80 && grade < 90) { printf(" B "); }
else if (grade >= 70 && grade < 80) { printf("\n C "); }
printf("\nEND OF PROGRAM\n"); getch();
}
입력값= 88; 출력; B
입력값= 90; 출력; A
입력값= 77; 출력; C
입력값= 69; 출력;
[실습문제] 세 개의 점수를 입력받고, 그 평균이 90 이상이면, "우수"를 출력하고, 60 미만이면 "실격"을 출력하고,
70에서 89는 "보통", 61에서 69는 "열등"을 출력하는 코드를 작성하시오.
(실행file= if-우수-실격-보통-열등.exe)
예; 90 85 95 -> 우수
79 78 80 -> 보통
60 70 62 -> 열등
59 71 49 -> 실격
[실습문제] (실행file= if-성적ABCDF.exe )
점수가 90 이상인가? 그렇다면 A를 출력하고
점수가 80이상 90미만이면 B를 출력하고
점수가 70이상 80미만이면 C를 출력하라.
점수가 60이상 70미만이면 D를 출력하라.
점수가 60미만이면 F를 출력하라.
예; 98 -> A
55 -> F
82 -> B
[탐구문제] 아래 프로그램의 목적은 0.1, 0.2, 0.3 중 하나를 입력받고,
입력이 0,3이면 '상', 0.2이면, '중', 0.1이면 '하'를 출력하는 것이다.
예를 들면, 0.2를 입력하면, '중'을 출력해야한다.
그러나 현재의 프로그램은 "입력 오류"라는 메시지가 출력된다.
이 프로그램의 오류를 수정하시오.
(이 프로그램; if-floatingErr-Fixed.exe
수정한 프로그램; if-floatingErr.exe )
#include <stdio.h>
#include <conio.h>
main() {
float x;
printf("\n 입력값= 0.1, 0.2, 0.3 >> ");
scanf("%f",&x);
printf("\n Your Input= %f",x); getch();
if (x==0.3) { printf("\n 등급= 상"); }
else if (x==0.2) { printf("\n 등급= 중"); }
else if (x==0.1) { printf("\n 등급= 하"); }
else { printf("\n 입력 오류"); }
printf("\n\n ========== END OF PROGRAM ========= ");
}
//