我正在为我正在创建的程序编写代码,而我想要的部分代码就是要求用户输入一个数字。
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);
}
}
所以这要求我输入一个数字,但我必须输入两次。
它也只使用第一个输入作为变量
答案 0 :(得分:3)
获得nextInt()
之后,您询问它是否有另一个hasNextInt()
输入,如果您输入更多信息,则只知道这一点。
也许您打算将nextInt()放在if
块中。也许您还希望将int repeats
用作int
值。
答案 1 :(得分:0)
您正在调用x.hasNextInt()
并且扫描程序等待另一个输入以检查它是否为int。您还在读取int并将其分配给double(int不是)。为了进一步说明,你将int / double混合传递给Math.round,它将它转换为Long,然后将其转换为int并尝试将其分配给double。
如果您想检查一行是否为int,您应该尝试类似:
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");
}