0614
문제
중첩 if문을 사용하여 세 수를 입력 받아 가장 작은 최솟값을 구하여라.
Ex)
첫 번째 수 입력 : 3
두 번째 수 입력 : 6
세 번째 수 입력 : 10
3와 6와 10 중 제일 작은 수는 3입니다.
소스
import java.util.Scanner;
public class MinOfThree {
public static void main(String args []) {
Scanner sc = new Scanner(System.in);
int num1, num2, num3, min;
System.out.print("첫 번째 수 입력 : ");
num1 = sc.nextInt();
System.out.print("두 번째 수 입력 : ");
num2 = sc.nextInt();
System.out.print("세 번째 수 입력 : ");
num3 = sc.nextInt();
min = num1;
if ( num1 < num2 ) {
if ( num1 < num3 ) {
min = num1;
} else {
min = num3;
}
}
if ( num2 < num1 ) {
if ( num2 < num3 ) {
min = num2;
} else {
min = num3;
}
}
System.out.println(num1+"와 "+num2+"와 "+num3+" 중 제일 작은 수는 "+min+"입니다.");
}
}
소스 풀이
- 세 수 입력 변수 num1, num2, num3을 준비한다.
- 최솟값 변수 min을 준비한다.
- 변수 min의 초깃값을 num1로 할당한다.
- 만약 num1이 num2보다 작고 num3보다도 작다면 min에 num1을 저장한다.
- 만약 num1이 num2보다는 작지만 num3보다는 작지 않다면 최솟값이 num3이 되므로 min에 num3을 저장한다.
- 만약 num2가 num1보다 작고 num3보다도 작다면 min에 num2를 저장한다.
- 만약 num2가 num1보다는 작지만 num3보다는 작지 않다면 최솟값이 num3이 되므로 min에 num3을 저장한다.
- 최솟값이 변수 min에 저장되었으므로 세 수 중에서의 최솟값을 출력한다.
출력 결과
Ex) 1, 2, 3을 입력했을 경우
첫 번째 수 입력 : 1
두 번째 수 입력 : 2
세 번째 수 입력 : 3
1와 2와 3 중 제일 작은 수는 1입니다.