如果算上你好的世界,程序并遇到一个小问题,那我就写第一篇,第二名。
我的代码:
import java.util.*;
class test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("What is your name: ");
String name = scan.nextLine();
System.out.print("What is your favorite number: ");
int favoriteNumber = scan.nextInt();
System.out.print("What is your favorite game: ");
String game = scan.nextLine();
}
}
因此它会在name和favoriteNumber中进行扫描,但程序会在要求用户输入喜爱的游戏之前结束。基本上,用户只能输入文本两次而不是我想要的三次。
答案 0 :(得分:1)
只是猜测:scan.nextInt()
在用户按Enter后不会使用尾随换行符。随后对scan.nextLine()
的调用会找到换行字符。
尝试为int favoriteNumber = scan.nextInt();
切换String favoriteNumber = scan.nextLine();
,看看是否能解决问题。如果确实如此,我的假设是正确的。
如果 ,则应该使用Integer.parseInt
将此字符串转换为整数。这里的问题实际上是你真的想要收集3行输入,其中一行定义为“以换行符结尾的任何字符序列”。你的程序目前被编写为请求一行,一行,然后是一行,而不是“3行输入,其中一行包含一个int”。
答案 1 :(得分:0)
必须抛出异常scan.nextInt(); 检查您是否输入了正确的int