Java,使用相同的输入循环两次
我的Java代码片段有一个小问题。我想取一个double或int并打印一条错误消息,然后用任何其他输入重新启动。现在,我对Java相当陌生,所以这可能不是实现这一点的最有效的方法,但是您能做些什么呢 在任何情况下,我遇到的问题是,如果我输入了无效的输入,它会在接受新输入之前打印两次错误消息。我只想使用Java,使用相同的输入循环两次,java,loops,while-loop,java.util.scanner,Java,Loops,While Loop,Java.util.scanner,我的Java代码片段有一个小问题。我想取一个double或int并打印一条错误消息,然后用任何其他输入重新启动。现在,我对Java相当陌生,所以这可能不是实现这一点的最有效的方法,但是您能做些什么呢 在任何情况下,我遇到的问题是,如果我输入了无效的输入,它会在接受新输入之前打印两次错误消息。我只想使用sc.next(),但如果用户输入带有空格的字符串,我不想接受另一个无效输入 它有明显的评论,因为这是我的教授想要的,所以我做了 以下是我的代码片段: System.out.println("Ent
sc.next()
,但如果用户输入带有空格的字符串,我不想接受另一个无效输入
它有明显的评论,因为这是我的教授想要的,所以我做了
以下是我的代码片段:
System.out.println("Enter hours worked: ");
while(hourFinisher == false)
{
//avoids type mismatch by allowing double or int to be entered
if(sc.hasNextDouble())
{
hours = sc.nextDouble();
isDouble = true;
hourFinisher = true;
}
else if(sc.hasNextInt())
{
intHours = sc.nextInt();
isDouble = false;
hourFinisher = true;
}
//in the case of a non-double or int, prints an error message and accepts a new input
else
{
System.out.println("Invalid Input! Please enter valid input.");
sc.nextLine();
}
需要明确的是,当我输入时,例如'a'
,得到的是无效输入!请输入有效的输入。
两次
我不想把它打印两次;这是多余的。任何指点都很感激
谢谢 使用sc.nextLine()代码>在其他输入之后(即nextInt()
,nextDouble()
。这些输入之后不会自动进行输入。可能重复的