-3

本体でブール メソッドを使用すると、プログラムがフリーズして動作しなくなります。メソッドを別の場所に配置しようとしましたが、まったく同じことが起こります-フリーズします。

メソッドは非常にシンプルでよく書かれていますが、何が問題を引き起こしているのかわかりません。

PSメソッドはコードの下部にあります。

ご協力いただきありがとうございます!

編集:今見てみると、それはばかげた質問でした。みんなありがとう!

public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int stringNumber = 0;
        String[] stringArray = new String[10];


        for (int i = 0; i <= stringArray.length; i++) {

            boolean itemExists = false;
            boolean AddItem = AddItem();


            if (AddItem == true) {

                out.println("\nEnter a string");
                String input = keyboard.next();

                if (i > 0) {
                    for (int j = 0; j < stringArray.length; j++) {
                        if (input.equalsIgnoreCase(stringArray[j])) {
                            itemExists = true;
                            out.println("Item \"" + input + "\" already exists.");
                            break;
                        }
                    }
                }

                if (itemExists == false) {
                    stringArray[stringNumber] = input;
                    out.println("\"" + stringArray[stringNumber] + "\"" + " has been stored.\n");
                } else {
                    out.println("Try again.");
                    i--;
                }

                PrintArray(stringArray);
                stringNumber++;
            }
        }
    }

  // This is the method I was talking about //
    public static boolean AddItem() {
        Scanner keyboard = new Scanner(System.in);
        int input = keyboard.nextInt();
        out.println("If you want to add an item, Press 1");

        if (input == 1) {
            return true;
        } else {
            out.println("Invalid input.");
            return false;
        }
    }
4

3 に答える 3

5

フリーズしていないのではないかと思います - 入力を待っているだけです。残念ながら、次の 2 つのステートメントの順序が原因で、入力を待っていることを通知していません。

int input = keyboard.nextInt();
out.println("If you want to add an item, Press 1");

それらのラウンドを切り替えると、プログラムはより理にかなっています。ただし、それらを切り替えなくても、フリーズせず、入力を待つだけです。

于 2013-10-26T09:45:47.450 に答える
0

印刷してから入力をキャプチャします。いえ

System.out.print(something);
int i = keyboard.nextInt();
于 2013-10-26T09:47:23.010 に答える
0

ユーザー入力を待っていてフリーズしていないものを使用しscanner.nextInt()ています。コンソールから必要な量の値を入力します。

于 2013-10-26T09:47:17.020 に答える