두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.
첫째 줄에 다음 세 가지 중 하나를 출력한다.
- A가 B보다 큰 경우에는 '>' 를 출력한다.
- A가 B보다 작은 경우에는 '<' 를 출력한다.
- A와 B가 같은 경우에는 '==' 를 출력한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
if( A > B ) {
System.out.println(">");
} else if ( A < B ) {
System.out.println("<");
} else {
System.out.println("==");
}
}
}
이와 같이 자주 쓰는 Scanner을 통해 int A와 B 값을 입력 받고
if조건문을 통해 두 값을 비교해 true인 경우에 해당 문자열을 출력하는 방식이다.
import java.io.BufferedReader;
import java.io.inputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
StringTokenizer st = new StringTokenizer(str, " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
if( A > B ) {
System.out.println(">");
} else if ( A < B ) {
System.out.println("<");
} else {
System.out.println("==");
}
}
}
BufferedReader를 사용한 방식이다.
readLine()을 통해 입력을 받아 입력 값을 비교하는 것이다.
이 방식에서 readLine()을 통해 읽어온 값을 StringTokenizer 클래스를 이용해 공백 단위로 문자열을 분리를 하고 두 값을 비교를 한다.
그리고 st.nextToken()은 문자열을 반환하기 때문에 Integer.parseInt()로 문자열을 int형으로 변환시켜줘야한다.
삼항연산자를 통해 긴 조건문을 한 줄로 정리할 수가 있다.
기본 문법은 아래와 같다.
변수 = (조건문) ? (true 일 때의 연산) : (false 일 때의 연산)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
System.out.println((A > B) ? ">" : (( A < B) ? "<" : "=="));
이와 같이 A > B가 true 일 때 ">" 를 출력하고
false 일 경우 삼항연산자를 한 번 더 중첩을 해서 A < B 조건을 비교해 true/false 일 때의 연산을 해주면 된다.