gpt4 book ai didi

java - 是否有可能只在某件事发生时才返回一个值,否则就不行?

转载 作者:行者123 更新时间:2023-11-29 04:33:56 24 4
gpt4 key购买 nike

    public static String hero() {
Scanner scanner = new Scanner(System.in);
System.out.println("Which hero will you play as: Wizard, Elf or Dwarf?");
heroType = scanner.nextLine();
if (heroType.equalsIgnoreCase("wizard") || heroType.equalsIgnoreCase("elf") || heroType.equalsIgnoreCase("dwarf")){
//code
return heroType;
}
else {
System.out.println("This character is not recognised, please choose from Wizard, Elf or Dwarf.");
hero();
}
}

我希望此方法仅在选择了 3 个选项之一时才返回 heroType,否则它应该再次调用该方法。但这会导致编译器错误,因为在 if 语句之外没有 return 语句。最后有 return 语句的问题是 main 方法有一个“String h = hero();”并且“h”被传递给其他方法,但是如果用户首先选择 Sprite Sprite 或矮人以外的东西,然后自己更正它们,“h”仍然存储第一次来自扫描仪的原始错误值。

它应该像我认为的那样工作,因为用户最终必须给出正确的值(因为该方法刚刚被再次调用)并且最终会有一个返回值,但事实并非如此。

最佳答案

使用:

return hero(); 

而不只是调用 hero();

关于java - 是否有可能只在某件事发生时才返回一个值,否则就不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com