返回多个值java

时间:2014-04-21 09:03:50

标签: java

假设我有一个java函数,如下所示,

public static int my(int a, int b)
{

    int c = a + b;
    return c;

    String d = "Some Data";
    return d;

    float f = a/b;
    return f
}

那么,我如何单独获得3个返回值?

所有值都是不同的数据类型。

我见过this questionthis question,但无法理解。

6 个答案:

答案 0 :(得分:4)

任何函数只能返回一个值。您可以做的是创建一个包含所有答案的对象并返回此对象。

class ResultObject
{
   public int c;
   public int d;
   public int e;
   public int f;
}

你的功能白色

public static ResultObject my(int a, int b)
{
ResultObject resObject = new ResultObject();
resObject.c = a + b;

resObject.d = a*b;

resObject.e = a-b;

resObject.f = a/b;
return resObject;
}

您只能返回一个值。您必须使该值“包含”其他值。

答案 1 :(得分:1)

返回int的数组..例如INT [] ...

public static int[] my(int a, int b) {
    int res[] = new int[4];

    int c = a + b;
    res[0] = c;

    int d = a * b;
    res[1] = d;

    int e = a - b;
    res[2] = e;

    int f = a / b;
    res[3] = f;

    return res;
}

答案 2 :(得分:1)

有两种方式。

  1. 如果您返回统一值,例如一段时间内温度的百分之一值 - 使用数组
  2. 如果值不均匀,例如名字,姓氏和年龄 - 引入新课程
  3. 原因是Java是一种强类型编程语言。想要描述一个新的数据结构 - 写一个新的类。

答案 3 :(得分:0)

您可以尝试这样的事情

  public static int[] my(int a, int b) { // use an array to store values
    int[] arr = new int[4];
    int c = a + b;
    arr[0] = c;

    int d = a * b;
    arr[1] = d;

    int e = a - b;
    arr[2] = e;

    int f = a / b;
    arr[3] = f;

    return arr; // return values 
}

答案 4 :(得分:0)

您只能返回一个元素,但元素可能是数组或列表。您可以返回值列表。(一些练习)。我希望这可以带来一些解决方案。

答案 5 :(得分:0)

public class DataStorage{
         private int a;
         private String data;
         private float f;

         public DataStorage(int a, String data, float f){
             this.a = a;
             this.data = data;
             this.f = f;

         }

         /* standard get/set method. */
     }

    public static DataStorage my(int a, int b)
    {

       int c = a + b;


       String d = "Some Data";


       float f = a/b;


        DataStorage dataStorage = new DataStorage(c,d,f);
        return dataStorage;
    }