Rumah >Java >javaTutorial >Bagaimanakah `scanner.nextLine()` Java Mengendalikan Input, Terutamanya dalam Gelung?

Bagaimanakah `scanner.nextLine()` Java Mengendalikan Input, Terutamanya dalam Gelung?

DDD
DDDasal
2024-12-19 18:07:171014semak imbas

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

Menggunakan scanner.nextLine()

Di Java, kaedah nextLine() daripada kelas java.util.Scanner membaca satu baris teks daripada aliran. Ia biasanya digunakan untuk membaca input daripada pengguna.

Pertimbangkan contoh berikut:

Contoh 1: Membaca Baris Tunggal

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);
    }
}

Dalam contoh ini, kaedah nextLine() membaca input pengguna untuk ayat tersebut. Ia betul-betul menunggu pengguna memasukkan nilai sebelum meneruskan membaca indeks.

Contoh 2: Membaca dalam Gelung

// 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();
            }
        }
    }
}

Dalam contoh ini, isu di mana kaedah nextLine() tidak membaca input dalam gelung diselesaikan dengan secara eksplisit memanggil scanner.nextLine() selepas membaca pemilihan integer. Ini memastikan bahawa mana-mana aksara yang tinggal dalam penimbal input dibuang, membenarkan panggilan nextLine() untuk ayat berfungsi dengan betul.

Atas ialah kandungan terperinci Bagaimanakah `scanner.nextLine()` Java Mengendalikan Input, Terutamanya dalam Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn