在方法中使用双"return"



我正在创建一个方法,我必须填充两个不同的数组。一个用人名,一个用人姓

。为此,我使用此程序: 通过这种方式,我在两个单独的方法中创建两个数组,然后我可以在其他方法中使用它们。

public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int person;
System.out.println("How many people are there?");
person=in.nextInt();
String [] names=names(person);
String [] surnames=surnames(person);
}
public static String [] names (int person) {
Scanner in=new Scanner(System.in);
String names []=new String [person];
System.out.println("Enter the names of the people");
for (int i=0; i<names.length; i++)
names[i]=in.next();
return names;
}
public static String [] surnames (int person) {
Scanner in=new Scanner(System.in);
String surnames []=new String [person];
System.out.println("Enter the surnames of the people");
for (int i=0; i<surnames.length; i++)
surnames[i]=in.next();
return surnames;
}

但是,我想在同一方法中创建两个数组,然后能够在其他方法中使用它们。

当然有一些更快,更直观的方法。谁能帮我?谢谢。

您需要重构发送给客户端的消息(字符串(:

public static String [] names (int person, String message) {
Scanner in=new Scanner(System.in);
String names []=new String [person];
System.out.println(message);
for (int i=0; i<names.length; i++)
names[i]=in.next();
return names;
}

并调用相同的方法两次:

String [] names=names("Enter the names of the people");
String [] surnames=names("Enter the surnames of the people");

假设你不喜欢使用Person对象(或类似的东西( - 考虑使用包含两个数组的包装器对象。

像这样:

class Wrapper{
String [] names
String [] surnames
// getters & setters
}

组合方法将返回wrapper对象。

您可以将 return 语句与 if 条件或开关大小写一起使用以返回不同的值,但您必须记住,函数只能调用 return 语句一次。 一旦调用 return 语句,函数就结束了。

另一种选择是在调用函数时发送参数,以便您知道要问什么。

public static String [] getNameOrSurname(int person, String value) {
Scanner in=new Scanner(System.in);
String retrunValue[]=new String [person];
System.out.println("Enter the +"value"+ of the people");
for (int i=0; i<returnValue.length; i++)
returnValue[i]=in.next();
return returnValue;
}

当您需要调用函数以获取名称时

String [] names = getNameOrSurname(person , 'Name')

当你需要调用函数来获取姓氏时

String [] surnames = getNameOrSurname(person , 'Surname')

最好的方法是使用 getter 和 setters :

设置功能:

public static String [] setNames (int persons, String message) {
Scanner in=new Scanner(System.in);
String names []=new String [persons];
System.out.println(message); 
for (int i=0; i<names.length; i++)
names[i]=in.next();
return names;
}

获取函数:

显示阵列

所以每个函数做一件事,一个获取数组的值并填充它。 第二个函数显示它。

最新更新