작성
·
242
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요. 자바 기본편 수강을 막 시작한 수강생입니다.
섹션 1. 클래스 - 클래스가 필요한 이유' 강의 내 첫번째 예제가 주어진 코드를 배열을 통하여 구현하는 것이었는데요,
선생님께서는 배열의 변수를 선언하실 때 배열의 값을 적으셨는데,
저는 배열의 값을 Scanner를 통해 직접 입력하고 싶어서 아래의 코드를 만들어보았습니다. (코드 중 일부입니다.)
배열의 변수는 앞에서 선언하였고, for문을 통해 배열의 값을 채우며 배열을 완성시켰습니다.
문제는 코드를 실행해보니 일어났는데요, 학생의 이름만 아예 출력되지 않습니다.
null로 출력되는 것도 아니고, 입력값이 읽히지 않은 것처럼 아래와 같이 빈 상태로 실행 됩니다. 학생의 점수와 나이는 올바르게 출력됩니다. 다른 에러는 없습니다.
출력 예시) 이름: 나이: 22 성적: 2
중간의 input.nextLine(); 을 혹시나 해서 지워보고 실행해봤지만
결과는 아래와 같이 출력되었고, 이름의 값 입력이 불가능해졌습니다.
출력 예시) 학생 이름을 입력하세요: 학생 나이를 입력하세요:
해결 방법을 알고 싶습니다. 감사합니다.
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("학생 수를 입력하세요: ");
int students = input.nextInt();
String[] studentsNames = new String[students];
int[] studentsAges = new int[students];
int[] studentsGrades = new int[students];
for (int i = 0; i < students; i++) {
System.out.print("학생 이름을 입력하세요: ");
studentsNames[i] = input.nextLine();
System.out.print("학생 나이를 입력하세요: ");
studentsAges[i] = input.nextInt();
System.out.print("학생 점수를 입력하세요: ");
studentsGrades[i] = input.nextInt();
답변 1
0
안녕하세요. 안주희님, 공식 서포터즈 OMG입니다.
코드 일부만 올리셔서 정확한 확인은 불가능하지만, 아래의 코드와 비교해보시면 될 것 같습니다 😀
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("학생 수를 입력하세요: ");
int students = input.nextInt();
input.nextLine();
String[] studentsNames = new String[students];
int[] studentsAges = new int[students];
int[] studentsGrades = new int[students];
for (int i = 0; i < students; i++) {
System.out.print("학생 이름을 입력하세요: ");
studentsNames[i] = input.nextLine();
System.out.print("학생 나이를 입력하세요: ");
studentsAges[i] = input.nextInt();
System.out.print("학생 점수를 입력하세요: ");
studentsGrades[i] = input.nextInt();
input.nextLine();
}
for (int i = 0; i < students; i++) {
System.out.println("이름: " + studentsNames[i] + ", 나이: " + studentsAges[i] + ", 성적: " + studentsGrades[i]);
}
}
감사합니다.