Java/자바기본개념

[JAVA] nextLine()이 안 될 때

유호야 2021. 5. 26. 09:00
반응형

nextLine() 과 섞에 사용할 경우에는 주의가 필요합니다.

import java.util.Scanner;
 
public class JavaScanner{
 
    public static void main(String[] args) {
        
        Scanner scan = new Scanner(System.in);
        String name;
        int age;
             
        System.out.println("나이를 입력하세요.");
        age = scan.nextInt();
        System.out.println("이름을 입력하세요.");
        name = scan.nextLine();
 
        System.out.printf("나이는 %d입니다.%n",age);
        System.out.printf("이름은 %s입니다.%n",name);

 scan.close();

    }
 
}
나이를 입력하세요.
25
이름을 입력하세요.
나이는 25입니다.
이름은 입니다.

nextInt()와 같이 타입을 지정해서 받는 메소드는 'Enter'값을 무시하고 해당 타입만 받아 변환하여 반환하는데

이때 컴퓨터 내부에서는 ' Enter '값이 아직 남아있기 때문에 nextLine()에서 ' Enter '값을 받아들이고 그대로 입력되어 종료되는것입니다. 분명 입력할때는 25 하고 엔터를 눌렀을 뿐인데 말이죠 주의해주세요!

 

그리고 scan을 굳이 close() 로 닫아줄 필요는없지만 닫아주는 습관을 기르도록 합시다.

 

출처 : https://mine-it-record.tistory.com/103

반응형