如何直接获取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;
    }
}