강의로 돌아가기
노현준

boolean는 논리형이니깐 true 또는 false 만 입력해야하는거아닌가요?

//a가 b보다 큰 지 비교한 결과(true 또는 false)를 c에 저장하세요.
boolean c = true;

    //a와 b가 같은지 비교한 결과를 d에 저장하세요.
    boolean d = false;

    //a와 b가 다른지 비교한 결과를 e에 저장하세요.
    boolean e = true;

이런식으로 입력해야하는거 아닌가요?

왜 ( a > b ) 이런식으로 입력하죠?

작성중인 코드―relation_operator
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class OperatorExam {
    public boolean[] calculate(int a, int b) {
        //변수 a와 b는 int형 변수입니다. 각각 어떤 값을 가지고 있는지는 비교해 보기 전에는 모릅니다.
        //a와 b가 주어져 있다고 가정하고 아래 지시에 따라 문제를 풀어 보세요.

        //a가 b보다 큰 지 비교한 결과(true 또는 false)를 c에 저장하세요.
        boolean c = (a > b);

        //a와 b가 같은지 비교한 결과를 d에 저장하세요.
        boolean d = (a == b);

        //a와 b가 다른지 비교한 결과를 e에 저장하세요.
        boolean e = (a!=b);

        //이 아래 코드는 결과 테스트를 위한 코드입니다.
        boolean ret[]={c,d,e};
        return ret;
    }

    public static void main(String[]args){
        int a = (int)(Math.random()*10);
        int b = (int)(Math.random()*10);
        new OperatorExam().calculate(a,b);
    }
}
2 개의 답변
정두식_

a>b와 같은 논리식 자체가 boolean값을 가져요.
프로그래밍은 컴퓨터한테 일을 시키려는건데 true/false로 직접 값을 계산해서 입력하면 프로그래밍 하는 의미가 없게되져.

서영식

boolean변수가 true와 false의 값만 가진다고 해서 변수에 true나 false를 넣어 주라는 것은 아닙니다.
값을 비교해서 그것이 맞으면 true를 다르면 false를 보여주는 것이죠

문제에서도 int형인 a와 b가 어떤값인지 주어지지 안았고 각각 어떤 값을 가지고 있는지는 비교해 보기 전에는 모른다고했으니 그걸 비교해 보라는 것입니다.
그러니까 a가 b보다 큰 지 비교( a > b)한 결과를 boolean형 변수 c에 넣어 주느 것입니다.
boolean c = a > b;

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.