자바 연산자 실습
연산자를 활용해서 시험 성적의 평균을 내보자.
이 과정중에 발생할 수 있는 오류에 대해서 알아볼 것이다.
수학 = 92 점
영어 = 95 점
국어 = 96 점
과학 = 98 점
이라 가정했을때 이 점수들의 평균은 어떻게 계산해야할까?
생각하는 그대로 다 더해서 과목의 수대로 나누어주면 된다.
(92 + 95 + 96 + 98) / 4 를 해주면 될것이다.
계산해보면 95.25 가 나온다.
그럼 이 내용을 자바로 작성해보자.
1. 변수 선언 (시험 성적 입력)
이렇게 변수 선언을 통해 시험 성적을 입력해준다.
2. 이제 다 더하고 나누어주자. 두가지 방법으로 해보겠다.
(1) 평균값이라는 변수를 선언한 후 평균값 변수를 출력.
(2) 출력창에서 계산을 해버려 변수선언을 따로 하지 않고 출력.
(1) 잘못된 예
소수점까지 출력하기 위해서 double average라고 선언해주었고, 식도 다 맞는데 잘못되었다고?
뭐때문일까?
일단 출력을 해보자.
엥? 위에서 직접 계산해보았을때는 95.75 가 나왔는데 왜 95.0 이 출력되었을까?
얼핏 보면 맞는 코드인것 같지만, 잘못된 것이 있다. 바로 double 선언 위치이다.
double average 는 계산한 값을 전달 받아야하는데,
(Math + English + Korean + Science) / 4 이 과정의 계산값은 int 즉, 정수형인 변수들만 가지고 계산을 한거라서
double average 변수에 전달되기 이전에 95.25의 값에서 정수부분인 95만 얻게 되는것이다.
이후, double average 에 전달하였지만, 전달된 값은 소수점을 제외한 95 뿐.
따라서, average 를 출력해보면 95.0 이라는 값만 출력되는 것이다.
(1) 옳은 예
그렇다면 어떻게 선언을 해야할까?
방법은 여러가지이다.
이전에 설명한대로 시험 성적 변수 선언에서 int를 double로 하나만 바꿔줘도 제값이 나온다.
이런식으로.
하지만 점수들은 int로 선언하고 평균값만 double선언을 해준다면
이렇게 계산값을 전달하기전에 double 선언을 먼저해주어 계산값이 소수점까지 전달될 수 있도록 해주면 된다.
95.25 라는 값을 받아그대로 평균값으로 전달하는 것이다.
이렇게 잘 출력된다.
(2) 평균 변수 선언 없이 출력
이렇게 출력코드에서 계산을 해서 출력하는 방법도 있다.
이 방법을 사용하면 평균 변수를 따로 선언할 필요가 없다.
이때도 double선언을 해줘야 소수점까지 잘 출력된다는 것을 잊지말자.
'프로그래밍언어 > JAVA' 카테고리의 다른 글
자바 JAVA - 반복문 (switch 문) (0) | 2021.08.20 |
---|---|
자바 JAVA - 반복문(if, else, else if 문) (0) | 2021.08.19 |
자바 JAVA - 자료형 (0) | 2021.08.19 |
자바 JAVA - 연산자 (0) | 2021.08.19 |
자바 JAVA - 변수 선언 (0) | 2021.08.18 |