ホームページ > Java > &#&チュートリアル > Java の `scanner.nextLine()` は、特にループ内で入力をどのように処理しますか?

Java の `scanner.nextLine()` は、特にループ内で入力をどのように処理しますか?

DDD
リリース: 2024-12-19 18:07:17
オリジナル
988 人が閲覧しました

How Does Java's `scanner.nextLine()` Handle Input, Especially in Loops?

scanner.nextLine() の使用

Java では、java.util.Scanner クラスの nextLine() メソッドが単一行を読み取ります。ストリームからのテキストの。これは、ユーザーからの入力を読み取るためによく使用されます。

次の例を考えてみましょう:

例 1: 単一行の読み取り

import java.util.Scanner;

class Test {
    public void menu() {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter a sentence:\t");
        String sentence = scanner.nextLine();

        System.out.print("Enter an index:\t");
        int index = scanner.nextInt();

        System.out.println("\nYour sentence:\t" + sentence);
        System.out.println("Your index:\t" + index);
    }
}
ログイン後にコピー

この例では、 nextLine() メソッドは、文に対するユーザーの入力を読み取ります。インデックスの読み取りを続行する前に、ユーザーが値を入力するのを適切に待機します。

例 2: ループでの読み取り

// Example 2
import java.util.Scanner;

class Test {
    public void menu() {
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("\nMenu Options\n");
            System.out.println("(1) - do this");
            System.out.println("(2) - quit");

            System.out.print("Please enter your selection:\t");
            int selection = scanner.nextInt();

            if (selection == 1) {
                System.out.print("Enter a sentence:\t");
                String sentence = scanner.nextLine();

                System.out.print("Enter an index:\t");
                int index = scanner.nextInt();

                System.out.println("\nYour sentence:\t" + sentence);
                System.out.println("Your index:\t" + index);
            }
            else if (selection == 2) {
                break;
            }
            else {
                System.out.print("Invalid input. Please try again: ");
                scanner.nextLine();
            }
        }
    }
}
ログイン後にコピー

この例では、 nextLine() メソッドがループ内の入力を読み取らない問題は、選択整数を読み取った後に、scanner.nextLine() を明示的に呼び出すことで解決されます。これにより、入力バッファーに残っている文字が確実に破棄され、文の nextLine() 呼び出しが正しく機能するようになります。

以上がJava の `scanner.nextLine()` は、特にループ内で入力をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート