程序段工作正常,但正在跳过if语句中的第一个任务。
如果用户选择了" Y"
,则输出如下您是否希望添加另一个主题代码 - Y或N?
ÿ输入主题名称:
输入主题代码:ABC123
它不会让用户有机会输入主题名称。它在创建if语句之前有效,所以我假设它与之有关。我一直在绞尽脑汁,但无济于事。
System.out.println("Do you wish to add another subject code - Y or N? ");
String response = input.next();
if (response.equalsIgnoreCase("Y")) {
/**User input*/
System.out.println("\nEnter the subject name: ");
String subjectName = input.nextLine();
System.out.println("\nEnter subject code: ");
String subjectCode = input.next();
Subject mySubject = new Subject(subjectCode, subjectName);
/**Write to the file*/
output.println(mySubject.getSubjectCode() + " " + mySubject.getSubjectName());
output.close();
}
else
output.close();
System.out.println("\nProgram terminated\n");
干杯, 苏珊
答案 0 :(得分:0)
String response = input.next(); // Wrong
String response = input.nextLine(); // Right
执行input.next()
时,您只需阅读该行的第一个单词。
如果您之后执行input.nextLine()
,则会读到下一个换行符。
这意味着如果您键入y<enter>
,第一个语句将读取y
,第二个语句将读取,直到<enter>
只是空字符串。