Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
031 - Java 실행의 컨트롤(제어문) - if문을 사용하여 성적 등급 출력하기 본문
[Java]/Program source (java)
031 - Java 실행의 컨트롤(제어문) - if문을 사용하여 성적 등급 출력하기
Jelly-fish 2023. 8. 29. 15:21/*=========================================
■■■ 실행 흐름의 컨트롤(제어문) ■■■
- if 문
- if ~ else 문 실습
===========================================*/
// 1. 프로그램을 작성할 때 주어진 조건에 따라
// 분기 방향을 정하기 위해 사용하는 제어문에는
// if문, if~else문, 조건연산자, 복합 if문(if문 중첩), switch문이 있다.
// 2. if문은 if 다음의 조건이 참(true)일 경우
// 특정 문장을 수행하고자 할 때 사용되는 구문이다.
// 사용자로부터 이름, 국어점수, 영어점수, 수학점수를 입력받아
// 다음과 같은 형태로 출력하는 프로그램을 작성한다.
// 등급은 평균 점수를 기준으로 처리한다.
// 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));
// 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; //-- 평균 check~!!!
// 5. 등급에 대한 조건 검사를 수행한다.
char grade; //-- 등급
// else 를 쓰지 않고 else if만 사용하게 되면
// java에서 오류가 발생한다. ===> if와 else if 조건문에 맞지 않는 입력이 들어왔을 때
// grade를 어떤 값으로 채워야 하는지 알 수 없기 때문에...
// 방법 ① : else if (fAvg < 60) 을 else 문으로 바꾼다.
// 방법 ② : char grade 변수를 grade = 'F';로 미리 초기화 시켜둔다.
// 위와 같은 방법을 사용하면, 잘못된 입력이 들어왔을 때에도
// grade에 미리 값이 들어 있기 때문에 변수가 초기화 되지 않았을 때의 오류가 발생하지 않는다.
if (fAvg >= 90)
{
grade = 'A';
}
//else if (fAvg >= 80 && fAvg < 90)
else if (fAvg >= 80) //-- 평균이 90점 미만 조건 포함
{
grade = 'B';
}
else if (fAvg >= 70) //-- 평균이 80점 미만 조건 포함
{
grade = 'C';
}
else if (fAvg >= 60) //-- 평균이 70점 미만 조건 포함
{
grade = 'D';
}
else
{
grade = 'F';
}
// 6. 최종 결과 출력
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);
}
}
// 실행 결과
/*
이름 입력 : 김경태
국어 점수 : 90
영어 점수 : 81
수학 점수 : 73
>> 당신의 이름은 김경태 입니다.
>> 국어 점수는 90,
>> 영어 점수는 81,
>> 수학 점수는 73,
>> 총점은 244이고, 평균은 81.33입니다.
>> 등급은 B 입니다.
계속하려면 아무 키나 누르십시오 . . .
*/
/* ======================[내 풀이]=====================
public class Test031
{
public static void main(String[] args) throws IOException
{
// 1. 변수 선언==============
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int kor, eng, mat, tot;
double average;
char degree;
String name;
// 2. 입력 받기==============
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());
// 3. 연산 처리=============
// 총점 구하기
tot = kor + eng + mat;
// 평균 구하기
average = tot / 3.0;
// 등급 구하기
// 90점 이상 : A
// 80점 이상 90점 미만 : B
// 70점 이상 80점 미만 : C
// 60점 이상 70점 미만 : D
// 60점 미만 : F
if (90 <= average)
{
degree = 'A';
}
else if (80 <= average)
{
degree = 'B';
}
else if (70 <= average)
{
degree = 'C';
}
else if (60 <= average)
{
degree = 'D';
}
else
{
degree = 'F';
}
// 4. 출력 =====================
// >> 당신의 이름은 김경태입니다.
// >> 국어 점수는 90,
// >> 영어 점수는 80,
// >> 수학 점수는 70,
// >> 총점은 240이고, 평균은 80.00 입니다.
// >> 등급은 B 입니다.
// 계속하려면 아무 키나 누르세요...
System.out.printf(">> 당신의 이름은 %s입니다.\n", name);
System.out.printf(">> 국어 점수는 %d\n", kor);
System.out.printf(">> 영어 점수는 %d\n", eng);
System.out.printf(">> 수학 점수는 %d\n", mat);
System.out.printf(">> 총점은 %d이고, 평균은 %4.2f입니다.\n", tot, average);
System.out.printf(">> 등급은 %c 입니다.\n", degree);
}
}
*/
// 실행 결과
/*
이름 입력 : 김지민
국어 점수 : 90
영어 점수 : 80
수학 점수 : 70
>> 당신의 이름은 김지민입니다.
>> 국어 점수는 90
>> 영어 점수는 80
>> 수학 점수는 70
>> 총점은 240이고, 평균은 80.00입니다.
>> 등급은 B 입니다.
계속하려면 아무 키나 누르십시오 . . .
*/
'[Java] > Program source (java)' 카테고리의 다른 글
033 - Java if 조건문을 통해 입력 받은 수가 2, 3의 배수인지 판별하는 프로그램 (0) | 2023.08.29 |
---|---|
032 - Java 제어문 if를 통해 입력 받은 정수가 홀수인지 짝수인지 0인지 판별하는 프로그램 (1) | 2023.08.29 |
030 - Java 삼항 연산자 : 입력 받은 년도가 윤년인지 판별하는 프로그램 (0) | 2023.08.29 |
029 - Java 삼항 연산자 : 알파벳 변환 프로그램 내 풀이 (0) | 2023.08.29 |
029 - Java 삼항 연산자 : 입력 받은 알파벳의 대소문자를 변환해 주는 프로그램 (0) | 2023.08.29 |