用扫描仪检查条件循环
checking condition loop with scanner
我正在尝试编写一个代码,在您提供错误数据的情况下让您循环。问题是我需要为这两种情况提供某种类型的 "Bad data" 消息:
- 您输入的不是整数值
- 您输入的值低于 0
在此代码中,如果您键入一个字母,它会循环显示一条消息:"Bad data",但是如果您键入例如 -10 之类的负值,则不会出现错误数据(即使验证有效并且您需要将数字更正为正数)
我怎样才能做到更通用,所以在两种情况下系统输出都会在屏幕上打印错误数据
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);
你只验证扫描仪是否有下一个整数,你不验证它的值,整数可以是负数。
试试这个解决方案:
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);
检查下一个整数后,我添加了提供的整数的部分检查值。
另外请记住命名变量和 类 - 以小写字母开头,因此在您的情况下 NumberOfPlayers
应该是 numberOfPlayers
。
为什么将扫描仪命名为 scan7
?这个名字有正当理由吗?如果不是,您应该避免在名称中添加数字。
我正在尝试编写一个代码,在您提供错误数据的情况下让您循环。问题是我需要为这两种情况提供某种类型的 "Bad data" 消息: - 您输入的不是整数值 - 您输入的值低于 0
在此代码中,如果您键入一个字母,它会循环显示一条消息:"Bad data",但是如果您键入例如 -10 之类的负值,则不会出现错误数据(即使验证有效并且您需要将数字更正为正数)
我怎样才能做到更通用,所以在两种情况下系统输出都会在屏幕上打印错误数据
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);
你只验证扫描仪是否有下一个整数,你不验证它的值,整数可以是负数。 试试这个解决方案:
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);
检查下一个整数后,我添加了提供的整数的部分检查值。
另外请记住命名变量和 类 - 以小写字母开头,因此在您的情况下 NumberOfPlayers
应该是 numberOfPlayers
。
为什么将扫描仪命名为 scan7
?这个名字有正当理由吗?如果不是,您应该避免在名称中添加数字。