메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

자바 200제 : 2개의 실숫값 중 큰 값을 표시하는 프로그램을 작성하자.

한빛미디어

|

2019-05-30

|

by 한빛

1,152

문제 : 2개의 실숫값 중 큰 값을 표시하는 프로그램을 작성하자.

// 읽은 2개의 실숫값 중에서 큰 쪽을 표시(방법1:if문)

import java.util.Scanner;

 

class Max2A {   

  public static void main(String[] args) {     

    Scanner stdIn = new Scanner(System.in);

 

    System.out.print("실수 a:"); double a = stdIn.nextDouble();      

    System.out.print("실수 b:"); double b = stdIn.nextDouble();

 

    double max;   // 큰 값을 저장      

    if (a > b)         

      max = a;      

    else         

      max = b;

 

    System.out.println("큰 쪽의 값은 " + max + "입니다.");   

  } 

}

 

// 2개의 실수값을 읽어서 큰 쪽을 표시(방법2:조건 연산자) 

import java.util.Scanner;

 

class Max2B {   

  public static void main(String[] args) {      

    Scanner stdIn = new Scanner(System.in);

 

    System.out.print("실수 a:"); double a = stdIn.nextDouble();      

    System.out.print("실수 b:"); double b = stdIn.nextDouble();

 

    double max = a > b ? a : b;

    System.out.println("큰 쪽의 값은 " + max + "입니다.");   

  }

}

 

[실행 예] 실수 a:25.7 / 실수 b:15.3 큰 쪽의 값은 25.7입니다.

 

조건 연산자(conditional operator)

Max2A 프로그램은 if문을 이용해 2개의 값 중 큰 값을 표시하는 프로그램이다. 변수 a, 변수 b에 각각 값을 저장한 후 a가 b보다 크면 max에 a를 대입하고 그렇지 않으면 max에 b를 대입한다. 결과적 으로 if문이 종료된 시점에는 변수 max에 큰 쪽의 값이 들어 있게 된다. Max2B 프로그램은 조건 연산자를 이용해 동일 결괏값을 가지는 프로그램이다.

 

max = a > b ? a : b;

 

[그림 1]는 조건 연산자를 이용한 조건 표현식conditional expression을 정리한 것이다. 변수 max에는 a가 b보다 크면 a의 값이, 그렇지 않으면 b의 값을 저장한다. 조건 표현식은 if문을 압축한 것으로 자바 프로그램에서 자주 사용한다.

 

[그림 1] 조건식의 평가

01.jpg

 

[표 1] 조건 연산자

 x ? y : z  x가 true인 경우 y를 평가한 값을, false인 경우 z를 평가한 값을 생성한다.

 

x를 평가한 값이 true인 경우 z는 평가되지 않으며, false인 경우는 y를 평가하지 않는다. 큰 쪽의 값을 구하는 조건식을 println 안에 넣으면, 변수 max를 사용하지 않아도 된다. 여기서 a > b ? a : b 부분을 감싼 ( )는 생략할 수 없다.

 

 System.out.println("큰 쪽의 값은 " + (a > b ? a : b) + "입니다.");

 

알쏭달쏭 자바 200제

 

댓글 입력
자료실