假设我有一个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 question和this question,但无法理解。
答案 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)
有两种方式。
原因是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;
}