반응형
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() 로 닫아줄 필요는없지만 닫아주는 습관을 기르도록 합시다.
반응형
'Java > 자바기본개념' 카테고리의 다른 글
[자바] ^ 연산자를 이용한 간단한 암호화 (0) | 2022.12.31 |
---|---|
List와 Map의 차이 (0) | 2021.06.27 |
Stack, Heap차이 / 캡슐화 / 응집도 / 결합도 / OOP / 자료구조 (0) | 2021.02.23 |
다형성이란? (0) | 2020.12.15 |
추상클래스, 추상메소드 (0) | 2020.12.12 |