为什么我的扫描仪不等于我的数组中的值?请帮助初学者

时间:2013-12-14 10:34:38

标签: java arrays if-statement methods

这与方法userInput()及其if语句有关。无论如何,userInput()的输出为0,为什么?我知道calculate = 0的初始值;但我想改变它,以便每次用户输入“Paper”,例如calculate = 1的值;我试过了一切!现在我想知道我的if语句有什么问题。请帮忙。 (对不起,如果我是菜鸟)

import java.util.Scanner;

class RPS{

    private static String[] userOption = new String[]{"Rock", "Paper","Scissors"};
public static void main(String[] args){

    System.out.println("Enter: Rock, Paper Or Scissors");
    System.out.println(userInput());        
}

    public static int userInput(){

        int calculate = 99;

         Scanner input = new Scanner(System.in);
         String userChoice = input.nextLine();

            if(userChoice == userOption[0]){
                calculate = 0;
            } else if(userChoice == userOption[1]){
                calculate = 1;
            } else if(userChoice == userOption[2]){
                calculate = 2;
            }           

            return calculate;
        }   
}

1 个答案:

答案 0 :(得分:0)

如果使用字符串,则必须使用equals方法。

e.g:

if(userChoice.equals(userOption[0]))

因为如果使用==,它会检查对象的引用是否相等。