猿问

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

这是我现在的代码:


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 method

public 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 方法找不到圆柱体积。气缸体积是否在正确的位置初始化/声明,是否需要以不同的方式返回/存储在主方法中才能工作?



料青山看我应如是
浏览 124回答 2
2回答

人到中年有点甜

您的方法应该返回 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可能是更合适的名字。

心有法竹

您创建方法的方式不正确。例如,在以下方法中: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 methodpublic 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 中阅读有关定义方法的更多信息
随时随地看视频慕课网APP

相关分类

Java
我要回答