如何使数字无效



创建一个名为minusSentinel2的新程序。

提示用户输入介于1和100之间的整数。允许用户根据需要输入任意数量的数字。

如果输入了无效号码;无效条目"再次提示用户,直到输入有效的数字。

一旦输入-1,程序就停止并打印输入的最大数字和文本"0";输入的最大数字是:";

我在";无效条目"部分当我键入一个大于100的数字时;无效条目"不会被打印。我该如何解决这个问题?非常感谢。

import java.util.*;
public class minusSentinel2
{
public static void main (String[] args)
{
Scanner console = new Scanner(System.in);
System.out.println("Enter a number between 1-100 (type -1 to quit):");
int number = console.nextInt();
int max = number;
if (number < 1 && number > 100)//chekcs if value is valid
{
System.out.println("Invalid entry.");
System.out.println("Enter a number between 1-100 (type -1 to quit).");
console.next();
}
while (number != -1)
{
number = console.nextInt();
if (number > max)
{
max = number;
}
}
System.out.print("The largest number entered is: " + max);
}
}

首先,我建议您不要复制和粘贴我们要求您做的事情,只使用我们需要的零件重新配方。

对于您的问题,此条件是错误的:

if (number < 1 && number > 100)

它对应于";小于1且大于100〃;。

因此,不要使用&&(和(运算符,而是使用类似的||(或(运算符:

if (number < 1 || number > 100) {
// it's not valid because lower than 1 or greater than 100
}

最后,你正在做的事情似乎还有另一个问题。如果您输入了一个无效的数字,它只会再次询问一次,而不是相同的新值。所以,我建议你使用while循环,就像这样:

int number = 0;
while(number < 1 || number > 100) {
number = console.nextInt();
if (number < 1 || number > 100) {
System.out.println("Invalid entry.");
System.out.println("Enter a number between 1-100 (type -1 to quit).");
}
}
int max = number;

总之,这是完整的代码:

Scanner console = new Scanner(System.in); // create scanner
int number = 0; // create new variable that will be used outside of while loop
while (number < 1 || number > 100) { // while the number isn't valid
System.out.println("Enter a number between 1-100 (type -1 to quit):");
number = console.nextInt(); // wait for user input
if (number == -1) { // stop program
console.close();
return;
} else if (number < 1 || number > 100) { // number invalid
System.out.println("Invalid entry.");
}
}
System.out.println("Now enter all number that you want. End with -1.");
int max = number; // create new max value
while (number != -1) {
number = console.nextInt();
if (number < 1 || number > 100) { // number invalid
System.out.println("Invalid entry.");
} else if (number > max) { // if number is upper than current one
max = number;
// here you can do something like that:
// System.out.println("New max value: " + max);
} else {
// the value is value but not upper than current one, so we can write:
// System.out.println("This value isn't upper to " + max);
}
}
System.out.print("The largest number entered is: " + max);
console.close();

最新更新