[if~else]
- if else 사이에 다른 문법적인 내용을 축하라 수 없음!
- 중첩 사용 가능!! (횟수 제한은 없음)
- if는 단독 사용 가능하지만 else는 불가
○ 실습
사용자로부터 이름, 국어점수, 영어점수, 수학점수를 입력받아
다음과 같은 형태로 출력하는 프로그램을 작성한다.
등급은 평균 점수를 기준으로 처리한다.
90점 이상 : A
80점 이상 90점 미만 : B
70점 이상 80점 미만 : C
60점 이상 70점 미만 : D
60점 미만 : F
단, BufferedReader 를 활용해 데이터를 입력받을 수 있도록 하며,
printf() 메소드를 통해 출력한다.
실행 예)
이름 입력 : 홍길동
국어 점수 : 90
영어 점수 : 80
수학 점수 : 70
>> 당신의 이름은 홍길동입니다.
>> 국어 점수는 90,
>> 영어 점수는 80,
>> 수학 점수는 70,
>> 총점은 240이고 평균은 80.00입니다.
>> 등급은 B 입니다.
계속하려면 아무 키나 누르세요...
▼ 내가 작성한 풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test031
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int kor, eng, mat, tot;
double avg;
String name;
char result;
System.out.print("이름 입력 : ");
name = br.readLine();
System.out.print("국어 점수 : ");
kor = Integer.parseInt(br.readLine());
System.out.print("영어 점수 : ");
eng = Integer.parseInt(br.readLine());
System.out.print("수학 점수 : ");
mat = Integer.parseInt(br.readLine());
tot = kor + eng + mat;
avg = tot / 3.0;
result = 'F';
if (avg>=90)
{
result = "A";
}
else if (avg<90 && avg>=80)
{
result = "B";
}
else if (avg<80 && avg>=70)
{
result = "c";
}
else if (avg<70 && avg>=60)
{
result = "D";
}
System.out.printf("당신의 이름은 %s 입니다.\n", name);
System.out.printf("국어 점수는 %d,\n영어 점수는 %d,\n수학 점수는 %d,\n", kor, eng, mat);
System.out.printf("총점은 %d이고, 평균은 %.2f입니다.\n0", tot, avg);
System.out.printf("등급은 %c입니다.\n", result);
}
}
▼ 같이 작성한 풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test031
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 1. 사용자로부터 이름을 입력받는다.
System.out.print("이름 입력 : ");
String strName = br.readLine();
//2. 사용자로부터 국어, 영어, 수학 점수를 입력받는다.
System.out.print("국어 점수 : ");
String strKor = br.readLine();
System.out.print("영어 점수 : ");
String strEng = br.readLine();
System.out.print("수학 점수 : ");
String strMat = br.readLine();
// 3. 문자열 형태로 입력받은 과목 점수를 정수 형태로 변환한다.
int nKor = Integer.parseInt(strKor);
int nEng = Integer.parseInt(strEng);
int nMat = Integer.parseInt(strMat);
// 4. 산술 연산을 통해 총점과 평균을 산출한다.
int nTot = nKor + nEng + nMat; //-- 총점
double fAvg = nTot / 3.0; //-- 평균
// 5. 등급에 대한 조건 검사를 수행한다.
char grade = 'F';
if (fAvg >= 90)
{
grade = 'A';
}
else if (fAvg >= 80)
{
grade = 'B';
}
else if (fAvg >= 70)
{
grade = 'C';
}
else if (fAvg >= 60)
{
grade = 'D';
}
//else // 다중 if~else 사용할 경우, 초기값을 설정해주거나 마지막에 else로 끝날 수 있도록 해야함
//{
// grade = 'F';
//}
System.out.printf("\n>> 당신의 이름은 %s 입니다.\n", strName);
System.out.printf(">> 국어 점수는 %s,\n", strKor);
System.out.printf(">> 영어 점수는 %s,\n", strEng);
System.out.printf(">> 수학 점수는 %s,\n", strMat);
System.out.printf(">> 총점은 %d 이고, 평균은 %.2f 입니다.\n", nTot, fAvg);
System.out.printf(">> 등급은 %c 입니다.\n", grade);
}
}