■問題
キーボードから円の半径と円周率を入力させ円の面積と演習を計算して出力するプログラムを作成してください。なお『Circle』クラスを作成しコンストラクタで半径と円周率を設定してください。ただし円周率の入力が省略された場合は『Circle』クラスの定数『PI』に『3.14』を代入しておきその定数を利用してください。また半径と円周率に数値以外のものが入力された場合『半径は数値を入力してください』とメッセージを出力してください。可能であれば面積、円周の値は小数第2位までの出力としてください。
実行例
半径>5
円周率>3
面積:75.0 円周:30.0
この問題を解いているのですがいまだ解けていません...
Java
1package en12; 2 3import java.io.BufferedReader; 4import java.io.IOException; 5import java.io.InputStreamReader; 6 7public class Ex0512 { 8 9 10 public static void main(String[] args) throws IOException { 11 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 12 try { 13 System.out.print("半径>"); 14 String str = br.readLine(); 15 double radius = Double.parseDouble(str); 16 try { 17 System.out.print("円周率>"); 18 String str1 = br.readLine(); 19 if(str1 == null || str1.length() == 0){ 20 Circle C= new Circle(radius); 21 C.area(); 22 } 23 double pi = Double.parseDouble(str1); 24 Circle B = new Circle(radius, pi); 25 B.area(); 26 } catch (NumberFormatException e) { 27 System.out.println("円周は数値を入力してください"); 28 } 29 } catch (NumberFormatException e) { 30 System.out.println("半径は数値を入力してください"); 31 } 32 } 33}
Java
1package en12; 2 3public class Circle { 4 private double pi, radius; 5 final double PI = 3.14; 6 7 public Circle(double radius) { 8 this.pi = 3.14; 9 } 10 11 public Circle(double radius, double pi) { 12 super(); 13 this.radius = radius; 14 this.pi = pi; 15 } 16 17 public double getPi() { 18 return pi; 19 } 20 21 public void setPi(double pi) { 22 this.pi = pi; 23 } 24 25 public double getRadius() { 26 return radius; 27 } 28 29 public void setRadius(double radius) { 30 this.radius = radius; 31 } 32 33 void area() { 34 System.out.print("面積:" + (radius * radius * pi)); 35 } 36} 37