我正在尝试编写代码,以防您提供错误的数据。问题是两种情况下我都需要某种类型的“错误数据”消息:-您输入的不是整数值-您输入的值低于0
在此代码中,如果您输入字母,则会向您循环显示一条消息:“错误数据”,但是如果您键入例如负值(如-10),则不会出现错误数据(即使验证有效并且您需要更正数字肯定)
我该如何使其更加通用,因此在两种情况下都将sysout与屏幕上打印的不良数据一起使用
Random rand = new Random();
int los = rand.nextInt(11);
int NumberOfPlayers ;
Scanner scan7 = new Scanner(System.in);
System.out.println(" Type number of players :");
do {
while (!scan7.hasNextInt()){
System.out.println(" Bad data");
scan7.next();
}
NumberOfPlayers = scan7.nextInt();
}while (NumberOfPlayers < 0);
您仅在扫描器具有下一个int时进行验证,不验证其值,并且整数可以为负。试试这个解决方案:
do {
while (!scan7.hasNextInt()) {
System.out.println(" Bad data");
scan7.next();
}
NumberOfPlayers = scan7.nextInt();
if (NumberOfPlayers <= 0) {
System.out.println(" Number must be larger than zero");
}
} while (NumberOfPlayers <= 0);
检查下一个int之后,我添加了提供的int的部分检查值。
也请记住有关变量和类的命名-以小写字母开头,因此在您的情况下NumberOfPlayers
应该为numberOfPlayers
。为什么命名扫描仪scan7
?这个名字有合理的理由吗?如果没有,则应避免在名称中添加数字。