반응형
문제의 코드
import java.util.*;
class Hello {
public static void main(String args[]){
Scanner scn = new Scanner(System.in);
String arrs[] = new String[scn.nextInt()];
for(int i = 0; i < arrs.length; i++) {
System.out.println(i +"번째 입력하실 차례입니다.");
arrs[i] = scn.nextLine();
System.out.println(arrs[i]);
}
for(int i = 0; i < arrs.length; i++) {
System.out.println(i+ "번째 : " + arrs[i] + ",");
}
}
Scanner 클래스의 nextInt() 메서드를 이용할 때 발생하는 버그이ㅏㄷ.
nextInt()를 받을 때 숫자와 함께
Enter 키를 저장하기 때문에
그 다음에 오는 nextLine(); 에 Enter 키가 자동 입력된다고 한다.
따라서 nextLine() 을 한 번 더 입력하거나,
Enter 값을 버퍼에 저장하지 않도록 nextInt()를 nextLine()으로 받아서
parseInt()로 바꿔주는 방법이 있겠다!
import java.util.*;
class Hello {
public static void main(String args[]){
Scanner scn = new Scanner(System.in);
String no = scn.nextLine();
String arrs[] = new String[Integer.parseInt(no)];
for(int i = 0; i < arrs.length; i++) {
System.out.println(arrs[i]);
arrs[i] = scn.nextLine();
}
for(int i = 0; i < arrs.length; i++) {
System.out.println(i+ "번째 : " + arrs[i] + ",");
}
}
}
import java.util.*;
class Hello {
public static void main(String args[]){
Scanner scn = new Scanner(System.in);
int no = scn.nextInt();
scn.nextLine();
String arrs[] = new String[no];
for(int i = 0; i < arrs.length; i++) {
System.out.println(arrs[i]);
arrs[i] = scn.nextLine();
}
for(int i = 0; i < arrs.length; i++) {
System.out.println(i+ "번째 : " + arrs[i] + ",");
}
}
}
반응형
'Java' 카테고리의 다른 글
[Java] 반올림해서 소수점 n번째 자리까지 출력 (0) | 2022.12.06 |
---|---|
[Java] 길이가 다른 2차원 배열 (0) | 2022.12.05 |
Math 클래스 피타고라스 정리 (0) | 2022.03.11 |
정규표현식 기본 빠싹하게 이해하기 (0) | 2022.02.09 |
[줌 클론코딩] #0.1 Requirements (0) | 2022.02.09 |