为了账号安全,请及时绑定邮箱和手机立即绑定

未找到在用户定义的方法中计算和返回的变量?

未找到在用户定义的方法中计算和返回的变量?

料青山看我应如是 2021-12-01 19:40:36
这是我现在的代码:import java.util.Scanner; import java.util.*;import java.io.File; import java.io.PrintWriter; import java.io.FileNotFoundException; import java.io.IOException;public class IceCreamData {    // method to calculation volume    public static void printCylinderVolume(double cylinderRadius, double cylinderHeight){         double cylinderVolume = Math.PI * Math.pow(cylinderRadius, 2) * cylinderHeight;         return cylinderVolume;    }    // method to calculate number of ice cream scoops    public static double printNumScoops(double cylinderVolume){         double numScoops = (cylinderVolume * 0.004329) * 30;         System.out.println("The number of scoops is " + cylinderVolume);    }// the main methodpublic static double main(String[] args) throws FileNotFoundException, IOException     { //input the file and scanner and output file     File input = new File("project4Data.txt");    Scanner in = new Scanner(input);     PrintWriter out = new PrintWriter("scoopResults.txt");//declaring variables outside of while-loop in order to run     String iceName; // name of the ice cream    double cylinderRadius; // cylider radius    double cylinderHeight; // cylinder height    int expirationYear; // expiration year我试图将柱面体积从 printCylinderVolume 方法返回到 main 方法,以便我可以在 printNumScoops 方法中使用它。现在我收到一条错误消息,指出圆柱体积是一个意外的返回值,另一个错误表明 printNumScoops 方法找不到圆柱体积。气缸体积是否在正确的位置初始化/声明,是否需要以不同的方式返回/存储在主方法中才能工作?
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

您的方法应该返回 a double,而不是 a void:


public static double printCylinderVolume(double cylinderRadius, double cylinderHeight) {

    // Here --^ 

    double cylinderVolume = Math.PI * Math.pow(cylinderRadius, 2) * cylinderHeight; 

    return cylinderVolume;

}

不过,您可能需要考虑重命名该方法,因为它实际上并不打印任何内容,它只返回计算结果。calcCylinerVolume可能是更合适的名字。


查看完整回答
反对 回复 2021-12-01
?
心有法竹

TA贡献1866条经验 获得超5个赞

您创建方法的方式不正确。例如,在以下方法中:


public static void printCylinderVolume(double cylinderRadius, double cylinderHeight){ 

    //         ^

   // the method need void return 



   double cylinderVolume = Math.PI * Math.pow(cylinderRadius, 2) * cylinderHeight; 



   return cylinderVolume;

   // But, you're returning double

}

您正在创建一个返回 void 的方法。但在方法结束时,您将返回一个双精度值。


并在以下代码中:


// the main method

public static double main(String[] args) throws FileNotFoundException, IOException {


   ...

}

如果你试图创建一个 main 方法,那么上面的代码是不正确的。main 方法应该返回一个像这样的 void:


public static void main(String[] args) {

  ...

}

请在https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html 中阅读有关定义方法的更多信息


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信