如何在不使用多个返回的情况下返回值

Joh*_*ohn 2 java return

我正在构建一个程序,我们特别不允许在子模块中使用多个返回.

我想知道如何通过jimArea,ashtynAreasteveArea从子模块,areaCalc以便他们可以在主要使用.这是我所指的子模块,后面是完整的代码.

public static int areaCalc(double depth, double width, double length)
{
 int jimArea = (int)(jimDepth * jimWidth * jimLength);
 int steveArea = (int)(steveDepth * steveWidth * steveLength);
 int ashtynArea = (int)(ashtynDepth * ashtynWidth * ashtynLength);
}
Run Code Online (Sandbox Code Playgroud)

这是完整的代码.最初我只是回到了区域,但事实证明我需要3个区域,所以我不知道如何在不做多次返回的情况下做到这一点.

import java.util.*;
public class PoolStorageCalculation
{
public static void main(String [] args)
{
 Scanner sc = new Scanner(System.in);
 System.out.println("Please enter the Depth of Steve's Pool in Metres.");
 double steveDepth = sc.nextDouble();
 System.out.println("Please enter the Width of Steve's Pool in Metres.");
 double steveWidth = sc.nextDouble();
 System.out.println("Please enter the Length of Steve's Pool in Metres.");
 double steveLength = sc.nextDouble();
 System.out.println("Please enter the Depth of Jim's Pool in Metres.");
 double jimDepth = sc.nextDouble()
 System.out.println("Please enter the Width of Jim's Pool in Metres.");
 double jimWidth = sc.nextDouble();
 System.out.println("Please enter the Length of Jim's Pool in Metres.");
 double jimLength = sc.nextDouble;
 System.out.println("Please enter the Depth of Ashtyn's Pool in Metres.");
 double ashtynDepth = sc.nextDouble();
 System.out.println("Please enter the Width of Ashtyn's Pool in Metres.");
 double ashtynWidth = sc.nextDouble();
 Systemm.out.println("Please enter the Length of Ashtyn's Pool in Metres.");
 double ashtynLength = sc.nextDouble();
 int area = areaCalc(steveDepth,steveWidth,steveLength,jimDepth,jimWidth,jimLength,ashtynDepth,ashtynLength,ashtynWidth);
 int numRays = rayCalc(steveArea);
 int numSharks = sharkCalc(jimArea);
 int numTurtles = turtleCalc(ashtynArea);
 System.out.println("Steve can store " + numRays + " Sting Rays in his " + steveArea + " Metres Cubed Pool.");
 System.out.println("Jim can store " + numSharks + " Sharks in his " + jimArea + " Metres Cubed Pool.");
 System.out.println("Ashtyn can store " + numTurtles + " Turtles in her " + ashtynArea + " Metres Cubed Pool.");
}
public static int areaCalc(double depth, double width, double length)
{
 int jimArea = (int)(jimDepth * jimWidth * jimLength);
 int steveArea = (int)(steveDepth * steveWidth * steveLength);
 int ashtynArea = (int)(ashtynDepth * ashtynWidth * ashtynLength);

 return area;
}
public static int rayCalc(int steveArea)
{
 int numRays = (int)(steveArea * 0.5);
 return numRays;
}
public static int sharkCalc(int jimArea)
{
 int numSharks = (int)(jimArea * 0.1);
 return numSharks;
}
public static int turtleCalc(int ashtynArea)
{
 int numTurtles = (int)(ashtynArea * 1.2);
 return numTurtles;
}
}
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,谢谢.约翰

Tim*_*sen 5

这里最快的修复可能只是返回一区域.例如,您可以返回一个List<Integer>而不是一个int,例如:

public static List<Integer> areaCalc(double depth, double width, double length)
{
    // Note: you don't actually use the method parameters in the assignments below.
    // This is probably a typo.
    int jimArea = (int)(jimDepth * jimWidth * jimLength);
    int steveArea = (int)(steveDepth * steveWidth * steveLength);
    int ashtynArea = (int)(ashtynDepth * ashtynWidth * ashtynLength);

    List<Integer> areaList = new ArrayList<>();
    areaList.add(jimArea);
    areaList.add(steveArea);
    areaList.add(ashtynArea);

    return areaList;
}
Run Code Online (Sandbox Code Playgroud)

如果你想要比这更好,那么你可以考虑创建一个包含三个区域值的真正的POJO:

public class AreaClass {
    private int jimArea;
    private int steveArea;
    private int ashtynArea;

    // constructor, getters and setters
}
Run Code Online (Sandbox Code Playgroud)