* next()와 nextLine()의 차이
next()
하나의 단어, 공백이 없는 문자 혹은 단어 출력
만약, 공백이 포함된다면 그 공백이 입력을 받는 다음 문장에 대한 입력으로 간주되기 때문에 주의가 필요
nextLine()
하나의 문장, 공백이 포함된 문장
package practice;
import java.util.Scanner; // Scanner 클래스를 사용하기 위해 추가
public class ex1 {
public static void main(String[] args) {
// Scanner 클래스의 객체를 생성
// (System.in) -> 화면 입력을 받겠다
Scanner scan = new Scanner(System.in);
System.out.print("정수 입력: ");
int result1 = scan.nextInt();
System.out.println("nextInt(): " + result1);
System.out.print("실수 입력: ");
double result2 = scan.nextDouble();
System.out.println("nextDouble(): " + result2);
System.out.print("문자 입력: ");
char result3 = scan.next().charAt(0);
System.out.println("next().charAt(0): " + result3);
System.out.print("문자열 입력: ");
String result4 = scan.next();
System.out.println("next(): " + result4);
// nextLine() 사용법
// nextLine() -> 입력대기 상태에 있다가 입력을 마치고 엔터를 누르면 입력한 내용이 문자열로 반환
// 따라서 다른 메서드들과 함께 사용하면 입력값을 받을 수 없는 에러 발생
// 위의 next() 메서드를 실행하고 받은 엔터 값을 nextLine()에서 인식해버려서 에러가 발생하는 것임!!
// 해결방법
// 1. nextLine() 입력을 한번 더 받기
// 2. 다른 메서드들과 함께 사용하는 경우, 첫 번째 줄에 사용
// 3. 모든 입력에 nextLine() 메서드만 사용하기 -> 필요에 따라 형변환으로 해결하기
String input = scan.nextLine(); // 해결을 위해 의미없는 입력을 한번 더 받자
System.out.print("문자열 입력: ");
String result5 = scan.nextLine();
System.out.println("nextLine(): " + result5);
}
}
'JAVA' 카테고리의 다른 글
switch문의 제약 조건 (0) | 2020.09.29 |
---|---|
Properties 클래스 (0) | 2020.09.26 |
Java 기초 (0) | 2020.09.12 |
equals()와 hashCode() (0) | 2020.09.12 |
6장 (0) | 2020.08.21 |