如何直接获取return个方法
How to get return of methods directly
你好,我有这个方法,我想得到这个方法的 return(a 变量)
我正在尝试调用这样的方法 x = choosePlanet(scanner);但我总是得到相同的值
谁能帮帮我?谢谢
private static Planet choosePlanet(Scanner scan) {
System.out.println("Voici les planetes Disponible : " + Arrays.toString(Planet.values()));
List<Planet> PlanetValues = Arrays.asList(Planet.values());
boolean exist = false;
Planet a =null;
do {
System.out.println("Choisis une planet");
String choix = scanner.next();
for (int i = 0; i < PlanetValues.size(); i++) {
a = PlanetValues.get(i);
if (a.toString().matches("(?i).*" + choix + ".*") == true) {
exist = true ;
System.out.println(a.getCommonName());
}
}
} while (exist==false);
return a;
}```
这是因为您的 for 循环缺少 break 语句,因此它遍历整个枚举并始终将最后一个值赋给变量 a,尽管本文中有很多地方可以更正代码但只是为了回答你的问题,这是正确的代码
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Planet choosePlanet = choosePlanet(scan);
choosePlanet.getCommonName();
}
private static Planet choosePlanet(Scanner scan) {
System.out.println("Voici les planetes Disponible : " + Arrays.toString(Planet.values()));
List<Planet> PlanetValues = Arrays.asList(Planet.values());
boolean exist = false;
Planet a = null;
do {
System.out.println("Choisis une planet");
String choix = scan.next();
for (int i = 0; i < PlanetValues.size(); i++) {
a = PlanetValues.get(i);
if (a.toString().matches("(?i).*" + choix + ".*") == true) {
exist = true;
System.out.println(a.getCommonName());
break;
}
}
} while (exist == false);
return a;
}
enum Planet {
EARTH("earth"), MARS("mars"),JUPITER("jupiter"), SATRUN("satrun");
private String commonName;
Planet(String string) {
this.commonName = string;
}
public String getCommonName() {
return commonName;
}
}
你好,我有这个方法,我想得到这个方法的 return(a 变量) 我正在尝试调用这样的方法 x = choosePlanet(scanner);但我总是得到相同的值
谁能帮帮我?谢谢
private static Planet choosePlanet(Scanner scan) {
System.out.println("Voici les planetes Disponible : " + Arrays.toString(Planet.values()));
List<Planet> PlanetValues = Arrays.asList(Planet.values());
boolean exist = false;
Planet a =null;
do {
System.out.println("Choisis une planet");
String choix = scanner.next();
for (int i = 0; i < PlanetValues.size(); i++) {
a = PlanetValues.get(i);
if (a.toString().matches("(?i).*" + choix + ".*") == true) {
exist = true ;
System.out.println(a.getCommonName());
}
}
} while (exist==false);
return a;
}```
这是因为您的 for 循环缺少 break 语句,因此它遍历整个枚举并始终将最后一个值赋给变量 a,尽管本文中有很多地方可以更正代码但只是为了回答你的问题,这是正确的代码
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Planet choosePlanet = choosePlanet(scan);
choosePlanet.getCommonName();
}
private static Planet choosePlanet(Scanner scan) {
System.out.println("Voici les planetes Disponible : " + Arrays.toString(Planet.values()));
List<Planet> PlanetValues = Arrays.asList(Planet.values());
boolean exist = false;
Planet a = null;
do {
System.out.println("Choisis une planet");
String choix = scan.next();
for (int i = 0; i < PlanetValues.size(); i++) {
a = PlanetValues.get(i);
if (a.toString().matches("(?i).*" + choix + ".*") == true) {
exist = true;
System.out.println(a.getCommonName());
break;
}
}
} while (exist == false);
return a;
}
enum Planet {
EARTH("earth"), MARS("mars"),JUPITER("jupiter"), SATRUN("satrun");
private String commonName;
Planet(String string) {
this.commonName = string;
}
public String getCommonName() {
return commonName;
}
}