java - 你能让一个方法==另一个方法吗?

标签 java if-statement methods equals

我评论了代码不起作用的地方。为什么不呢?我确保 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"); 
        }
    }
}

最佳答案

您正在再次调用这些方法,而不是重用它们的返回值。

int calc = calculate();
int comp = computerInput();

System.out.println(calc);
System.out.println(comp);

result(calc, comp); // Reuse them here!

当然,这需要您向 result 方法添加额外的参数。

public static void result(int calc, int comp) // Add params here
{
    if(calc == comp) // Compare them here!
    {
        System.out.println("Computer's Pick:" + computerOption[computerInput()] );
    } else
    {
        System.out.println("This doesnt work");
    }
}
<小时/>

当您调用这些方法两次时,将生成两次随机数,并且将询问两次用户输入。

关于java - 你能让一个方法==另一个方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20633711/

相关文章:

java - 为什么会出现以下错误? "No unique bean of type is defined: expected single matching bean but found 3"

linux - 需要用一个变量比较两个字符串

java - 从不同的类调用方法到另一个类和方法

java - 什么是NullPointerException,我该如何解决?

java - Android - 从 DatePickerDialog 更改线条颜色

java - 如何使用 Java 8 中的自定义比较器接口(interface)对对象数组进行排序?

java - 用于检查 char 数组是否包含 Java 中用户给定字母的 If 语句

arrays - 从第一个空白开始计算单元格数量,并在下一个空白后重新开始计数

java - 在 Java 的不同方法中使用本地声明的变量

c# - 为方法声明默认参数时出错