【发布时间】:2019-11-22 12:55:57
【问题描述】:
我一直试图在 Java 中实现摇滚、纸、剪刀游戏。 当我尝试使用 getinput 方法时:第一次尝试返回正确的输出 1、2 或 3(石头、纸、剪刀在游戏逻辑类中声明为静态最终 ..) 但是当我输入错误的输入然后正确的输入它总是返回 0 !
public int getInput(){
System.out.println("Select ROCK , PAPER or SCISSOR");
String choice = scanner.nextLine();
choice = choice.toUpperCase();
char c = choice.charAt(0);
if(c == 'R'){
return gameLogic.rock;
}else if(c == 'P'){
return gameLogic.paper;
}else if(c == 'C'){
return gameLogic.scissor;
}
getInput();
return 0;
}
【问题讨论】:
-
你为什么要使用递归呢?
-
在用户输入正确的输入之前该方法不会退出
-
也许你应该返回递归调用的值,即
return getInput();,而不是丢弃它并返回一个固定的0。 --- 当然,在这种情况下,循环会比递归调用更好。
标签: java recursion return zero