2017-10-02 7 views
-2

私はある方法でピザの面積を計算し、別の方法でピザの平方インチ当たりの価格を計算するJavaプログラムを書いています。私は面積法を使用していますが、平方インチ当たりの価格を計算しようとすると何の出力も得られません。私はそれがppsiメソッドのarea()メソッドを呼び出すことと関係があると思いますが、私が間違っていることや正確にエリアメソッドを呼び出す方法を正確にはわかりません。Javaのピザの平方インチあたりの価格を計算する

import java.util.Scanner; 
public class Pizza { 

    public static void main(String[] args){ 

     System.out.println("What is the size of your pizza in inches?"); 
     System.out.println(area() + " square inches"); 
     System.out.println("What is the price of your pizza?"); 
     System.out.println(ppsi()); 
    } 

    public static double area(){ 
     Scanner keyboard = new Scanner(System.in); 
     double diameter = keyboard.nextDouble(); 
     return (diameter/2) * (diameter/2) * Math.PI; 

    } 
    public static double ppsi(){ 
     Scanner keyboard = new Scanner(System.in); 
     double price = keyboard.nextDouble(); 
     return((area())/price); 
    } 

} 
+7

あなたは 'area'方法で再び面積を求めているを行っています - これらの値を別々に求めてから、パラメータとしてメソッドに渡します。 – MadProgrammer

+0

@MadProgrammerこれらの値を別々に求めてどういう意味ですか?私はそれぞれ独自の方法で計算します。 –

+0

area()を使って計算した値をppsi(double area)に渡し、ppsi –

答えて

1

を、それがAGAINに別の値を入力するようユーザーに促すために行くされている、areaを呼び出します。その代わり、その後、最初にこれらの値の入力を要求し、あなたの方法

public static void main(String[] args){ 
    Scanner keyboard = new Scanner(System.in); 

    System.out.println("What is the size of your pizza in inches?"); 
    double diameter = keyboard.nextDouble(); 
    System.out.println(area(diameter) + " square inches"); 
    double price = keyboard.nextDouble(); 
    System.out.println("What is the price of your pizza?"); 
    System.out.println(ppsi(diameter, price)); 
} 

public static double area(double diameter){ 
    //Scanner keyboard = new Scanner(System.in); 
    //double diameter = keyboard.nextDouble(); 
    return (diameter/2) * (diameter/2) * Math.PI; 

} 
public static double ppsi(double diameter, double price){ 
    //Scanner keyboard = new Scanner(System.in); 
    //double price = keyboard.nextDouble(); 
    return((area(diameter))/price); 
} 

この道にそれらを渡し、方法は、1つの仕事ではなく、2

0

"what is the price ..."のプロンプトを印刷した後、プログラムはユーザーが価格を入力して再び領域を入力することを期待しています。そのプロンプトの後に2つの数字を入力すると、出力が表示されます。

+0

ありがとう、私は出力を見ました。それを救済するにはどのようにすればいいのですか? –

1

ppsiの方法でもう一度電話をかけていますが、なぜそれを再度読み取る必要がありますか?

私はあなたが以下のようないくつかのことをしたいと思います、私はちょうどあなたのコード変更:あなたのppsi方法で

public static void main(String[] args){ 

    Scanner scanner = new Scanner(System.in); 
    System.out.println("What is the size of your pizza in inches?"); 
    double inches=scanner.nextDouble(); 
    double area=area(inches); 
    System.out.println(area + " square inches"); 
    System.out.println("What is the price of your pizza?"); 
    double price=scanner.nextDouble(); 
    System.out.println(ppsi(area, price)); 
} 

public static double area(double diameter){ 
    return (diameter/2) * (diameter/2) * Math.PI; 

} 
public static double ppsi(double area, double price){ 
    return((area)/price); 
} 
関連する問題