> Java > java지도 시간 > Java의 `scanner.nextLine()`은 특히 루프에서 입력을 어떻게 처리합니까?

Java의 `scanner.nextLine()`은 특히 루프에서 입력을 어떻게 처리합니까?

DDD
풀어 주다: 2024-12-19 18:07:17
원래의
985명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿