[ 문 제 ]
class exercise {
public static void main(String args[]) {
Student s = new Student();
s.name = "홍길동";
s.ban = 1;
s.no = 1;
s.kor = 100;
s.eng = 60;
s.math = 76;
System.out.println("이름 : " + s.name);
System.out.println("총점 : " + s.getTotal());
System.out.println("평균 : " + s.getAverage());
}
}
class Student{
String name;
int ban;
int no;
int kor;
int eng;
int math;
}
출력값
이름 : 홍길동
총점 : 236
평균 : 78.7
[ 풀 이 ]
class Student{
String name;
int ban;
int no;
int kor;
int eng;
int math;
public int getTotal(){
return kor + eng + math;
}
public float getAverage(){
return Math.round((kor+eng+math)/3.0f*10)/10.0f;
}
}
1. 처음에 Student 클래스 getTotal 메서드에서
return s.kor + s.eng + s.math를 시도했다. 바보같은 짓이다. 클래스는 설계도이니까, 뼈대를 세워야 한다.
가장 간단하게 가는 것이다.
return kor + eng + math; 가 정답.
2. public float getAverage를 더 간단하게 만들 수도 있다.
return (int)getTotal 로 풀이를 시작하면 된다.
풀이에서는 (int)(236 / 3f * 10 + 0.5) / 10f → 78.7 이렇게 했지만
내가 사용한 방법도 나쁘지 않다고 생각한다.
참고 : int과 int의 연산은 int의 결과값이 나온다
따라서 (kor+eng+math)/3을 하면 정수값이 나오게 된다.
'프로그래밍 > 코드분석' 카테고리의 다른 글
자바의 정석 연습문제 7-22 (0) | 2016.08.21 |
---|---|
자바의 정석 연습문제 6-23 (0) | 2016.08.17 |
자바의 정석 연습문제 6-2 (0) | 2016.08.16 |
자바의 정석 연습문제 9-4 (0) | 2016.08.13 |
자바의 정석 연습문제 9-3 (0) | 2016.08.13 |