石头剪刀布Java决定

时间:2019-03-22 09:03:09

标签: java

基本上,我试图让它为您提供键入Rock,Paper或Scissors的选项,但是例如要获取Paper,我需要先键入rock,然后它将读取代码行以获取纸张如果有道理,

    public static String decideString() {
    Scanner userInput = new Scanner(System.in);
    if (userInput.nextLine().contentEquals("Rock")) {
        System.out.println("You have chosen rock");
    } else if (userInput.nextLine().contentEquals("Paper")) {
        System.out.println("You have chosen paper");
    } else if (userInput.nextLine().contentEquals("Scissors")) {
        System.out.println("You have chosen scissors");
    }

2 个答案:

答案 0 :(得分:3)

尝试下面的代码。

public static String decideString() {
    Scanner userInput = new Scanner(System.in);
    String in = userInput.nextLine();
    if (in.contentEquals("Rock")) {
        System.out.println("You have chosen rock");
    } else if (in.contentEquals("Paper")) {
        System.out.println("You have chosen paper");
    } else if (in.contentEquals("Scissors")) {
        System.out.println("You have chosen scissors");
    }

答案 1 :(得分:0)

由于在每个if语句中使用了'.nextLine()'方法,因此它将在每次检查条件时使当前行前进。如果我正确地理解了您,则您希望用户仅输入一个输入,逻辑将打印他们选择的内容。在这种情况下,以下代码可能会对您有所帮助。

最佳实践是只使用一次Scanner对象(scobj)并将其存储在变量(userInput)中,以后可以在if语句中与变量进行比较。

    Scanner scobj = new Scanner(System.in);
    String userInput = scobj.nextLine();

    if (userInput.contentEquals("Rock")) {
        System.out.println("You have chosen rock");
    } else if (userInput.contentEquals("Paper")) {
        System.out.println("You have chosen paper");
    } else if (userInput.contentEquals("Scissors")) {
        System.out.println("You have chosen scissors");
    }