비교 연산자 실습
문제 변수 a와 b는 int형 변수입니다. 각각 어떤 값을 가졌는지 비교하기 전에는 모릅니다. a와 b가 주어졌다고 가정하고 문제를 풀어보세요.
public class OperatorExam2 { public void calculate(int a, int b) { // a가 b보다 큰지 비교한 결과(true 또는 false)를 c에 저장하세요. _____________________ // a와 b가 같은지 비교한 결과를 d에 저장하세요. _____________________ // a와 b가 다른지 비교한 결과를 e에 저장하세요. _____________________ System.out.println(a+"은(는) "+b+"보다 큽니까? "+ c); System.out.println(a+"은(는) "+b+"와(과) 같습니까? "+ d); System.out.println(a+"은(는) "+b+"와(과) 다릅니까? "+ e); } public static void main(String[]args) { // 0~10 사이 값을 랜덤하게 변수 a와 b에 넣어줍니다. int a = (int)(Math.random()*10); int b = (int)(Math.random()*10); new OperatorExam2().calculate(a,b); } }
실행결과
// 변수 a와 b의 값이 실행할 때마다 달라지므로 실행결과는 다를 수 있습니다. 8은(는) 3보다 큽니까? true 8은(는) 3와(과) 같습니까? false 8은(는) 3와(과) 다릅니까? true
정답
boolean c = a > b; boolean d = a = = b; boolean e = a != b;
해설
비교 연산자 실습입니다. 비교 연산자는 두 값을 비교해서 결괏값을 true 또는 false로 알려 주는 연산자입니다. 실행결과에서 a와 b 값에 따른 결과가 맞게 나왔는지 비교해보세요.
int a = (int)(Math.random()*10);
Math.random()은 0.0 이상에서 1.0 미만의 랜덤한 double형의 실숫값을 반환합니다.
Math.random()*10은 0.0에서 10.0 미만의 랜덤한 값을 반환합니다.
위의 실습과 별개로 main 메서드에서,
System.out.println(Math.random()); System.out.println(Math.random()*10); System.out.println((int)Math.random()*10);
이 코드들을 실행하면서 값을 확인해보세요.
(int)(Math.random()*10) 이렇게 (int) int형으로 형변환을 하면 소수점 뒤의 값은 없어지겠죠. 즉, 0~9 사이의 값을 변수 a와 변수 b에 담아주겠다는 의미입니다. 그러므로 변수 a와 b는 실행할 때마다 다른 값을 가질 수 있습니다.