[QUIZ] 최솟값, 최댓값 / 인터페이스 사칙연산
05 Sep 2021 -
2 minute read
입력한 숫자의 최솟값, 최댓값 구하기
배열 크기와 배열 크기만큼 숫자를 입력받고, 입력한 숫자 중 가장 큰 값과 가장 작은 값 구하기
- MainClass
import java.util.Scanner;
public class ArrayNumMain {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("배열 개수 입력 : ");
int len = scanner.nextInt();
int[] num = new int[len];
System.out.printf("숫자 %d개를 입력하세요 : ", len);
for (int i = 0; i < num.length; i++) {
num[i] = scanner.nextInt();
}
scanner.close();
ArrayNum arrayNum = new ArrayNum(num);
int max = arrayNum.mtdBig();
int min = arrayNum.mtdSmall();
System.out.printf("가장 큰 값은 %d이고, 가장 작은 값은 %d입니다.", max, min);
}
}
- CustomClass
public class ArrayNum {
int[] num;
public ArrayNum(int[] num) {
this.num = num;
}
public int mtdBig() {
int max = num[0];
for (int i = 0; i < num.length; i++) {
if (num[i] > max) {
max = num[i];
}
}
return max;
}
public int mtdSmall() {
int min = num[0];
for (int i = 0; i < num.length; i++) {
if (num[i] < min) {
min = num[i];
}
}
return min;
}
}
출력결과)
배열 개수 입력 : 5
숫자 5개를 입력하세요 : 45 89 31 65 1
가장 큰 값은 89이고, 가장 작은 값은 1입니다.
인터페이스를 이용해 사칙연산하기
인터페이스와 인터페이스 구현, 오버라이딩을 이용해 사칙연산 하기
- Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("숫자 두개 입력 : ");
double num1 = scanner.nextDouble();
double num2 = scanner.nextDouble();
System.out.println("1. 덧셈 \t 2.뺄셈 \t 3.곱셈 \t 4. 나눗셈");
int code = scanner.nextInt();
scanner.close();
Calc calc = null;
try {
if (code == 1) {
calc = new Add(num1, num2);
} else if (code == 2) {
calc = new Sub(num1, num2);
} else if (code == 3) {
calc = new Mul(num1, num2);
} else if (code == 4) {
calc = new Div(num1, num2);
}
calc.calc();
} catch (Exception e) {
System.out.println("숫자를 다시 확인해주세요");
}
}
}
- Calc.java (interface)
public interface Calc {
public abstract void calc();
}
- Add.java (implements Calc)
public class Add implements Calc {
double num1;
double num2;
public Add(double num1, double num2) {
this.num1 = num1;
this.num2 = num2;
}
@Override
public void calc() {
double res = num1 + num2;
System.out.printf("계산결과 : %.1f", res);
}
}
- Mul.java (implements Calc)
public class Mul implements Calc{
double num1;
double num2;
public Mul(double num1, double num2) {
this.num1 = num1;
this.num2 = num2;
}
@Override
public void calc() {
double res = num1 * num2;
System.out.printf("계산결과 : %.1f", res);
}
}
- Sub.java (implements Calc)
public class Sub implements Calc {
double num1;
double num2;
public Sub(double num1, double num2) {
this.num1 = num1;
this.num2 = num2;
}
@Override
public void calc() {
double res = num1 - num2;
System.out.printf("계산결과 : %.1f", res);
}
}
- Div.java (implements Calc)
public class Div implements Calc {
double num1;
double num2;
public Div(double num1, double num2) {
this.num1 = num1;
this.num2 = num2;
}
@Override
public void calc() {
double res = num1 / num2;
System.out.printf("계산결과 : %.1f", res);
}
}