Java에서 계속하려면 Enter를 누르십시오

Rupam Yadav 2023년10월12일
Java에서 계속하려면 Enter를 누르십시오

이 문서는 사용자가 Enter 키를 누를 때까지 콘솔을 보류하는 방법을 보여줍니다. 그러면 다음 메시지가 표시됩니다. 다음 예에서는Scanner클래스를 사용하여 세 개의 입력을 가져온 다음 콘솔에 표시합니다.

추가nextLine()을 사용하여 Java에서 Enter 키 대기

이 예에서는Scanner클래스sc의 개체를 만듭니다. Scanner는 텍스트를 스캔하고intString과 같은 기본 유형을 구문 분석합니다. 이 클래스는 입력 작업에 사용되는 많은 메서드와 함께 제공됩니다. 가장 일반적으로 사용되는 메소드는nextInt(),nextLine,nextDouble등입니다.

아래 예에서는 문제가 어디에 있는지 확인하고 다음 문제를 해결하는 기술을 사용합니다.

여기서는int유형의 세 가지 입력을 취하고 다음 두 가지 입력은String유형입니다. Scanner클래스를 사용하여 먼저nextInt()메소드를 호출하여int유형 변수에 age 입력을 가져옵니다. 그런 다음 이름과 성을 입력하기 위해 두 개의sc.nextLine()메소드와 두 개의 변수를 사용하여 저장합니다. 마지막으로 출력에 모든 변수 값을 표시합니다.

문제는 사용자가age값을 입력하고 Enter를 누를 때 발생합니다. 콘솔은firstName에 대한 입력을 받아야하지만이를 건너 뛰고lastName으로 직접 이동합니다. 아래 출력은 문제를 명확하게 보여줍니다.

import java.util.Scanner;

public class EnterContinue {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter your age: ");
    int age = sc.nextInt();

    System.out.print("Enter your First Name: ");
    String firstName = sc.nextLine();

    System.out.print("Enter your last Name: ");
    String lastName = sc.nextLine();

    System.out.println("Your Info:\nAge: " + age + "\nFull Name: " + firstName + " " + lastName);
  }
}

출력:

Enter your age: 23
Enter your First Name: Enter your last Name: John
Your Info:
Age: 23
Full Name:  John

Process finished with exit code 0

이제 문제를 알았으므로 먼저 해결 방법과 문제가 발생하는 이유를 논의 할 수 있습니다. int값을 입력으로 취하면nextInt()메소드는int값을 읽고 개행 문자를 읽을 수 없습니다. 이것이int를 읽은 후 Enter를 누르면 콘솔이이를 개행으로 인식하고 다음 명령문으로 건너 뛰는 이유입니다.

이 문제를 해결하기 위해 줄 바꿈을 건너 뛰고 다음 줄을 표시하는nextInt()함수 뒤에 추가nextLine()메서드를 사용해야합니다. 출력에서 이제 이전 예제에서는 불가능했던 이름을 입력하는 것을 볼 수 있습니다.

import java.util.Scanner;

public class EnterContinue {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Enter your age: ");
    int age = sc.nextInt();

    System.out.print("Enter your First Name: ");
    String firstName = sc.nextLine();
    sc.nextLine();

    System.out.print("Enter your last Name: ");
    String lastName = sc.nextLine();

    System.out.println("Your Info:\nAge: " + age + "\nFull Name: " + firstName + " " + lastName);
  }
}

출력:

Enter your age: 5
Enter your First Name: gfd
Enter your last Name: gfgf
Your Info:
Age: 5
Full Name:  gfgf
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java Scanner