什么都不会在编译器中打印。

时间:2013-10-31 01:03:18

标签: java

以下是我被问到的问题:

编写一个名为CalcTotalPrice的完整Java程序。该计划必须包括五种方法: getSaleTotal,getSalePrice,getSaleWe​​ight,calcTax和calcShipping。

  • getSaleTotal不接受任何输入参数并返回一个double,即销售总额,并通过调用其他四种方法来计算。
  • getSalePrice返回一个double,它在命令行从用户处获取。
  • getSaleWe​​ight返回一个double,它在命令行中从用户处获得。
  • calcTax将double作为参数(销售价格)并将税额返回为double(使用6%作为固定税率)。
  • calcShipping以双倍作为参数(销售重量)并将运费返回为双倍(如果重量小于10则计算运费为10美元,如果重量为10或更大则计算运费为20美元)。
  • getSaleTotal应将销售价格金额,税金金额,运费金额和销售总金额打印到命令行。

编译器中不会打印任何内容。请帮我。 这是我的代码:

import java.util.Scanner;
/**
 *
 * @author Kramer1
 */
public class CalcTotalPrice {



/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here


}
public static double getSaleTotal(){
    Scanner in = new Scanner(System.in);
    double price = getSalePrice(in);
    System.out.println(price);
    double tax = calcTax(.06);
    System.out.println(tax);
    double shipping = calcShipping(in.nextDouble());
    System.out.println(shipping);
    double saleTotal = ((price)*tax)+price+shipping;
    System.out.println(saleTotal);
    return saleTotal;
}
public static double getSalePrice(Scanner in){
    double salePrice = in.nextDouble();
    return salePrice;
}
public static double getSaleWeight(Scanner in){
    double saleWeight = in.nextDouble();
    return saleWeight;
}
public static double calcTax(double salePrice){
    double salesTax = .06;
    return salesTax;
}
public static double calcShipping(double saleWeight){
    double amountShipping = 0;
    if (saleWeight < 10){
        amountShipping = 10.; 
    }else if(saleWeight > 10){
        amountShipping = 20.;
    } 
    return amountShipping;
}
}

2 个答案:

答案 0 :(得分:1)

你在主()中没有做任何事情 要查看输出,您必须在main中创建Scanner,然后调用适当的方法。

您需要进行一些代码重构。首先,将扫描仪移动到主方法。然后将其作为参数传递给其他方法以从main读取数据或读取main中的数据并直接传递值。我建议后者

您还需要声明在方法之外和类中使用的变量,以便它们的值持续到程序结束,并且您可以通过各种方法访问它们。请将它们声明为静态。

答案 1 :(得分:0)

你有一个空的主方法 - 它没有做任何事情或调用任何代码。

尝试实例化您的类并调用其中的一些方法。 它看起来似乎期待用户的一些输入。因此,尝试在main中实例化 Scanner 类,然后可以将其传递给某些方法。还记得在调用下一个in.nextLine();

之前调用in.nextDouble();来刷新输入

尝试

Static Double salesPrice = null;

public static void main(String[] args) {

    CalcTotalPrice ctp = new CalcTotalPrice ();
    Scanner sc = new Scanner(System.in);

    salesPrice = ctp.getSalesPrice (in);
    in.nextLine();
    //etc

}