나는 자바를 배우며 수업을 시작했으며 현재 몇 가지 의구심이있다.자바 클래스 및 스캐너
나는 학생, 수업 및 의자의 데이터로 프로그램을 만들 예정입니다. 예를 들어 학생 데이터의 정보는 교실과 의자에서 사용됩니다. 당분간, 나는 자신을 학급 학생으로 제한 할 것이다.
각 학생의 이름과 생년월일이 표시됩니다. 학생 데이터가있는 클래스를 만든 다음 학생의 데이터를 두 개의 배열로 저장한다고 생각했습니다. 이름에 대한 문자열의 1 차원 배열과 날짜 (연, 월, 일)에 대한 세 개의 열이 포함 된 배열입니다.
나는 코드와 학생 클래스를 생성하여 시작 :
다음 주 파일에 이런 식으로 생각했던public class Stundent{
private String nameStudent;
private int yearBirth;
private int monthBirth;
private int dayBirth;
public void setName(String name){
System.out.println("Insert student's name:");
nameStudent = name;
}
public String getName(){
return nameStudent;
}
public void setYear(int year){
System.out.println("Insert student's year of birth:");
yearBirth = year;
}
public int getYear(){
return yearBirth;
}
public void setMonth(int month){
System.out.println("Insert student's month of birth:");
monthBirth = month;
}
public int getMonth(){
return monthBirth;
}
public void setDay(int day){
System.out.println("Insert student's day of birth:");
dayBirth = day;
}
public int getDay(){
return dayBirth;
}
}
:
Student person = new Student();
String[] nameStudents = new String[100];
int[][] birthdayStudents = new int[100][3];
for (int i = 0; i < 3; i++){
person.setName(sc.nextLine());
nameStudents[i] = person.getName();
person.setAno(sc.nextInt());
birthdayStudents[i][1] = person.getAno();
person.setMes(sc.nextInt());
birthdayStudents[i][1] = person.getMes();
person.setDia(sc.nextInt());
birthdayStudents[i][2] = person.getDia();
}
첫 번째 질문 :
잊고을 이 스캐너가 올바른 생각일까요? 나는 다음과 같은 상황이이 코드를 실행하면
:
두 번째 질문은 그것은 나에게 제공 될 것 "학생의 이름을 삽입 :"하지만 난 배치하면 마리아 InputMismatchException가 나타납니다. 나는 그가 올해 마리아를 저장하고 있다고 생각한다. 왜 이런 일이 발생합니까? 동일한 사이클에서 스캐너를 두 번 이상 호출 할 수 없습니까? 난 단지 코드에 넣어 경우
person.setName(sc.nextLine());
nameStudents[i] = person.getName();
하고 확인을 작동 생일 관련된 다른 모든 것들을 제거합니다. 누구든지 나를 계몽 할 수 있습니까?
을 @NickLH 예. 내가 제공 한 코드가 아니지만 스캐너를 초기화했습니다. – Favolas