System.out.println("Welcome to the Tuition Calculator Program.");
System.out.println("How many total credits are you taking?");
credits = scan.nextInt();
System.out.println("Are you a Washington resident? y/n");
resident = scan.nextLine();
System.out.println("Are you a graduate student? y/n");
grad = scan.nextLine();
我是Java新手,对编程比较陌生。在jGRASP中工作的PC上。在上面的代码中,我只需要用户输入信用数(int响应),驻留(字符串)和毕业生状态(字符串)。
它允许用户输入信用,但然后一起打印常驻问题和研究生问题。它不会停止并允许用户输入居住问题的答案。 (它允许我输入我对研究生问题的回答。)
论坛上的其他相关问题没有帮助;我已经尝试添加一个额外的行来吞下任何额外的换行符,但是还没有完成。也许我添加了错误的线条类型。 This thread很有帮助,但没有提供有效的解决方案。
答案 0 :(得分:1)
为什么会这样?
如果您尝试打印resident
,您会发现它会打印newline
字符。
实际上这里发生的是这个。输入credits
后输入的输入被作为字符串ans被复制到resident
变量。所以你需要的是避免换行符
的解决方案强>
使用credits
阅读nextLine()
并使用Integer.parseInt()
将其解析为整数。
System.out.println("Welcome to the Tuition Calculator Program.");
System.out.println("How many total credits are you taking?");
credits = Integer.parseInt(scan.nextLine());
System.out.println("Are you a Washington resident? y/n");
resident = scan.nextLine();
System.out.println("Are you a graduate student? y/n");
grad = scan.nextLine();