java.lang.IllegalStateException:扫描仪已关闭

我得到了以下代码,但是在第一个循环之后,我的调试器给出了以下错误,这很奇怪,我一直那样做,但是它不再起作用了,这很奇怪吗?我一步一步检查,切换命令后只是停顿了吗?


Exception in thread "main" java.lang.IllegalStateException: Scanner closed

        at java.util.Scanner.ensureOpen(Unknown Source)

        at java.util.Scanner.findWithinHorizon(Unknown Source)

        at java.util.Scanner.nextLine(Unknown Source)

        at Level.schleife(Level.java:35)

        at Crawler.main(Crawler.java:23)

public boolean schleife() {

    System.out.println("Das Spiel beginnt, bewege Dich mit der WASD Steuerung!");

    Scanner eingabeMove = new Scanner(System.in);


    tmpi = positioni;

    tmpj = positionj;

    while (true) {

        String bewegung = eingabeMove.nextLine();

        switch (bewegung) {

            case "w": {                                        // vorwärts

                tmpi += 1;

                if (actionResult()) {

                    positioni = tmpi;

                    break;

                } else {

                    return false;

                }

            }

            case "a": {                                    // links

                tmpj -= 1;

                if (actionResult()) {

                    positionj = tmpj;

                    break;

                } else {

                    return false;

                }

            }

            case "s": {                                    // rückwärts

                tmpi -= 1;

                if (actionResult()) {

                    positioni = tmpi;

                    break;

                } else {

                    return false;

                }

            }

            case "d": {                                    // rechts

                tmpj += 1;

                if (actionResult()) {

                    positionj = tmpj;

                    break;

                } else {

                    return false;

                }

    }

}


肥皂起泡泡
浏览 717回答 3
3回答

皈依舞

实际上,如果将closewhile循环外移,它将永远不会被调用,因为离开循环的唯一方法是使用return语句之一。 

慕仙森

gknicker我不能使用调用方法,不能在另一个类中schleife在我的main方法中启动方法,并且schleife在第二个类中定义该方法...向下2行,右边不可达,并且1也不起作用
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java