이것은 학교 과제를위한 질문입니다. 그래서 내가 그런 식으로하고 있습니다.Scanner를 생성자의 매개 변수로 사용하는 Java
어쨌든, 나는 main 메소드 (Scanner stdin = new Scanner (System.in); 라인)에서 Stdin을 사용하여 스캐너를 만들며 프로그램이 실행될 때 지정된 txt에서 데이터를 읽습니다. 예외없이, 스캐너의 호출은 단지 프로그램을 종료 할이 시점에서
public PhDCandidate(Scanner stdin)
{
name = stdin.nextLine();
System.out.println(name); //THIS NEVER RUNS
preliminaryExams = new Exam[getNumberOfExams()];
for(int i = 0; i <= getNumberOfExams(); i++)
{
preliminaryExams[i] = new Exam(stdin.nextLine(), stdin.nextDouble());
}
System.out.print("alfkj");
}
: 주에서 예상대로이 스캐너가 작동하지만 내가 인수로 스캐너를 가진 사용자 정의 클래스에서 사용할 필요가 또는 오류가 발생했습니다. .next()만이 작동합니다. 나는 프로그램을 작동시킬 수는 있지만 해키 일 것이고, 실제로 무슨 일이 일어나고 있는지 이해하지 못한다. 나는 아주 간단한 개념을 놓치고 있다고 생각하지만, 나는 길을 잃는다. 어떤 도움을 주시면 감사하겠습니다.
"이 시점에서 검사기를 호출하면 예외 나 오류가 발생하지 않고 프로그램이 종료됩니다." 정확히 어떤 시점에? 코드에서 어디에서 프로그램이 종료됩니까? –
프로그램이 실제로 종료 된 것 같지 않습니다. 나는 당신의 콘솔이 대신 입력을 기다리고 있다고 생각합니다. 콘솔에 이름을 입력하십시오. – Jimmy
@ Code-Guru : 스캐너를 사용하려고 할 때마다 종료됩니다. stdin.next()를 제외하고는 다른 모든 코드가 끊어집니다.) 즉시 .nextLine()을 사용하려고 시도하면 – user1781671