java你能让一个方法==另一个方法吗?
我评论了代码不起作用的地方。为什么不呢?我确保calculate()
是==
到computerInput()
,但它打印出“这不起作用”!!为什么呢
import java.util.Scanner;
class Drank {
private static String[] userOption = new String[] { "Rock", "Paper", "Scissors" };
private static String[] computerOption = new String[] { "Rock", "Paper", "Scissors" };
public static void main(String[] args) {
System.out.println("Enter: Rock, Paper Or Scissors");
System.out.println(calculate());
System.out.println(computerInput());
result();
}
public static int calculate() {
Scanner input = new Scanner(System.in);
String userInput = input.nextLine();
int calculate = 0;
if (userInput.equals(userOption[0])) {
calculate = 0;
} else if (userInput.equals(userOption[1])) {
calculate = 1;
} else if (userInput.equals(userOption[2])) {
calculate = 2;
}
return calculate;
}
public static int computerInput() {
int ai = (int) (Math.random() * 3);
return ai;
}
public static void result() {
if (calculate() == computerInput()) {
System.out.println("Computer's Pick:" + computerOption[computerInput()]);
} else {
// THIS IS WHERE THE PROBLEM
// IS! It always prints out
// the'else' even when both
// are equal?
System.out.println("This doesnt work");
}
}
}
# 1 楼答案
也许你应该试试这个:
# 2 楼答案
您再次调用这些方法,而不是使用重用它们的返回值
当然,这需要向
result
方法添加额外的参数当您两次调用这些方法时,将生成两次随机数,并询问两次用户输入
# 3 楼答案
我看不出代码中有什么原因说明比较不起作用
请注意,每次调用computerInput时,它都会返回不同的值,因此它打印的值与比较中使用的值不同
您需要将computerInput的结果存储在某个位置,以便在两个位置显示相同的数字
# 4 楼答案
您的代码在
computerInput()
中使用随机数生成器。每次运行该方法时,该值都会更改。因此,你必须幸运地猜出计算机的答案。但你显然猜错了您正在调用
computerInput()
againt,这意味着即使您猜到了正确的值,显示的结果也可能不同# 5 楼答案
我做了一些小改动,(不要调用方法两次)