[英]Why is my Scanner asking for an input twice?
我正在为要创建的程序编写代码,而我希望代码的这一部分要做的就是要求用户输入数字。
import java.util.Scanner;
public class DiceRoller {
System.out.println("Please input a number of you choice");
Scanner x = new Scanner(System.in);
double repeats = x.nextInt();
if(x.hasNextInt()){
repeats = (int)Math.round(repeats);
}
}
所以这要求我输入一个数字,但是我将不得不输入两次。
它还仅将第一个输入用作变量
获得nextInt()
,您询问它是否具有另一个具有hasNextInt()
输入,只有输入更多内容,它才知道这一点。
也许您打算将nextInt()放在if
块内。 也许您还想使用int repeats
作为其int
值。
您正在调用x.hasNextInt()
,并且扫描程序等待另一个输入来检查它是否为int。 您还正在读取一个int并将其分配给double(一个int不是)。 然后,将int / double混合传递给Math.round,将其转换为Long,然后将其转换为int并尝试将其分配为double。
如果要检查行是否为整数,则应尝试以下操作:
System.out.println("Please enter an integer.");
String line = x.nextLine();
int res=0;
try{
res=Integer.parseInt(line);
}catch(Exception e){
System.out.println("Not a number");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.