여기서 나는 좀 더 응용해서
1과 2를 입력받는게 아니면 다시 입력받을 수 있도록 코드를 짜봤다.
package Exam2;
import java.util.Scanner;
// 인터페이스
interface Shape {
// 추상메소드 선언
double findArea();
}
// 원형 클래스
class Circle implements Shape {
// 반지름 변수 선언
int radius;
// 기본 생성자
public Circle() { }
// 인자 생성자
public Circle(int radius) {
this.radius = radius;
}
// 프로토타입 메서드 구현
@Override
public double findArea() {
return 3.14 * radius * radius;
}
}
// 사각형 클래스
class Rectangle implements Shape {
// 멤버변수 선언
int height;
int width;
// 기본 생성자
public Rectangle() { }
// 인자 생성자
public Rectangle(int heigth, int width) {
this.height=heigth;
this.width=width;
}
// 프로토타입 메서드 구현
@Override
public double findArea() {
return height * width;
}
}
public class Exam_02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("도형을 선택하세요.(1. 원형, 2. 사각형)");
System.out.print("도형 선택 >>> ");
int choice=sc.nextInt();
// choice는 1이나 2의 조건을 충족해야 하므로,
if(choice!=1&&choice!=2) {
System.out.println("잘못된 번호를 입력하였습니다. \n1과 2 중 다시 선택하세요.");
choice=sc.nextInt();
}
if(choice==1) {
System.out.println("원형 선택");
System.out.print("반지름 입력 >>> ");
Circle circle = new Circle(sc.nextInt());
System.out.println("======================");
System.out.printf("원의 면적 >>> %.1f\n", circle.findArea()); }
else if(choice==2) {
System.out.println("사각형 선택");
System.out.print("가로 입력 >>> ");
int height = sc.nextInt();
System.out.print("세로 입력 >>> ");
int width = sc.nextInt();
Rectangle rectangle=new Rectangle(width, height);
System.out.println("======================");
System.out.printf("사각형의 면적 >>> %.1f\n", rectangle.findArea()); }
}
}
결과
도형을 선택하세요.(1. 원형, 2. 사각형)
도형 선택 >>> 1
원형 선택
반지름 입력 >>> 20
======================
원의 면적 >>> 1256.0
도형을 선택하세요.(1. 원형, 2. 사각형)
도형 선택 >>> 3
잘못된 번호를 입력하였습니다.
1과 2 중 다시 선택하세요.
2
사각형 선택
가로 입력 >>> 20
세로 입력 >>> 14
======================
사각형의 면적 >>> 280.0
'문제 풀이 > Java' 카테고리의 다른 글
[Java] 추상클래스를 적용하여 급여관리 시스템 만들어보기 (0) | 2021.09.02 |
---|---|
[Java] 상속과 메서드 오버로딩을 활용하여 급여관리 시스템 만들어보기 (0) | 2021.08.30 |
[Java] 클래스 응용문제_영수증 출력하기 (0) | 2021.08.29 |
[Java] 클래스 응용문제_TV 정보 바꾸기 (0) | 2021.08.23 |
[Java] 배열 알고리즘 응용문제 (0) | 2021.08.20 |
댓글