Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算爪哇每平方英寸比萨饼的价格_Java - Fatal编程技术网

Java 计算爪哇每平方英寸比萨饼的价格

Java 计算爪哇每平方英寸比萨饼的价格,java,Java,我正在编写一个java程序,用一种方法计算比萨饼的面积,用另一种方法计算每平方英寸比萨饼的价格。我有面积法,但当我试图计算每平方英寸的价格时,没有得到任何输出。我认为这与在ppsi方法中调用area()方法有关,但我不确定我到底做错了什么,也不确定如何正确调用area方法 import java.util.Scanner; public class Pizza { public static void main(String[] args){ System.out.p

我正在编写一个java程序,用一种方法计算比萨饼的面积,用另一种方法计算每平方英寸比萨饼的价格。我有面积法,但当我试图计算每平方英寸的价格时,没有得到任何输出。我认为这与在ppsi方法中调用area()方法有关,但我不确定我到底做错了什么,也不确定如何正确调用area方法

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);
    }

}

打印“价格是多少…”提示后,程序希望用户输入价格,然后再次输入区域。如果在提示之后输入两个数字,我希望您会看到一些输出

您在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);
}

ppsi
方法中,它调用
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);
}

这样,这些方法只做一项工作,而不是两项工作。

您在
区域
方法中再次请求该区域-分别请求这些值,然后将它们作为parameters@MadProgrammer你单独要求这些值是什么意思?我使用各自的方法进行计算。获取使用area()计算的值,并将该值传递给ppsi(双面积),然后在ppsiYou调用
area
中从
ppsi
中使用它代替area(),这将再次提示用户输入所需的面积。在方法外部提示输入这些值,并将结果作为参数传递给方法谢谢,我确实看到了输出。我如何纠正这一点,以便每次只需输入一次?