Java 错误:与扫描器不兼容的简单游戏选择类型?

Java 错误:与扫描器不兼容的简单游戏选择类型?,java,Java,我想做的是,我有两个游戏,一个叫ToF,一个叫旋转。 如果输入的字符串是“旋转”,开始旋转游戏。并将控制台输入转换为int 如果输入的int为1,则旋转轮子。 若输入的int为-1,则将控制台输入更改为字符串,并退出循环 但我得到了这个错误: src\Main.java:39: error: incompatible types input = console.nextLine(); 我的财产: private static Scanner console = new Scanner(

我想做的是,我有两个游戏,一个叫ToF,一个叫旋转。 如果输入的字符串是“旋转”,开始旋转游戏。并将控制台输入转换为int

如果输入的int为1,则旋转轮子。 若输入的int为-1,则将控制台输入更改为字符串,并退出循环

但我得到了这个错误:

src\Main.java:39: error: incompatible types
input = console.nextLine();
我的财产:

    private static Scanner console = new Scanner(System.in);
    private static Spin spin = new Spin();
    private static String input = "";
    private static String[] gamesArray = new String[] {"spin", "tof"};
    private static boolean spinWheel = false;
    private static boolean tof = false;
这里有一个错误:

        while (input.equals("spin")) {
            System.out.println("Spin game!");
            spinWheel = true;
            int input = console.nextInt();

            if (spinWheel) {
                System.out.println("Welcome to the spin game! Please write 1 to spin. and -1 to exit back");

                switch (input) {
                    case -1:
                        input = console.nextLine();
                    break;

                    case 1:
                    break;
                }                   
            }
        }
怎么了?为什么要这样做?如何修复此问题?

您需要

this.input = console.nextLine();
因为您正在使用同名的本地
int
变量隐藏
input

更干净的解决方案是给两个变量中的一个取不同的名称。

您需要

this.input = console.nextLine();
因为您正在使用同名的本地
int
变量隐藏
input

一个更简洁的解决方案是给两个变量中的一个赋予不同的名称。

Scanner#nextLine()
返回一个字符串。您正在将其分配给
int
。您应该将
Scanner#hasNextInt()
Scanner#nextInt()
结合使用
Scanner#nextLine()
返回字符串。您正在将其分配给
int
。您应该将
Scanner#hasnetint()
Scanner#nextInt()
结合使用。