简体   繁体   English

如何使号码无效

[英]How to make a number invalid

Create a new program called minusSentinel2.创建一个名为minusSentinel2 的新程序。

Prompt the user to enter whole numbers between 1 and 100. Allow the user to enter as many numbers as desired.提示用户输入 1 到 100 之间的整数。允许用户输入任意数量的数字。

If an invalid number is entered, print "Invalid entry."如果输入的号码无效,则打印“无效输入”。 Prompt the user again until a valid number is entered.再次提示用户,直到输入有效号码。

Once -1 is entered, the program stops and prints the largest number entered with the text "The largest number entered is: "输入 -1 后,程序将停止并打印输入的最大数字并带有文本“输入的最大数字是:”

I am having some trouble on the "Invalid entry."我在“无效条目”上遇到了一些问题。 part.部分。 When I type a number greater than 100, "Invalid entry."当我输入一个大于 100 的数字时,“输入无效”。 does not get printed.不会打印。 How do I fix this?我该如何解决? Thank you!谢谢!

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);
    }
}

Firstly, I suggest you to don't copy and paste what we ask you to do, and just reformulates with only necessary parts for us.首先,我建议您不要复制和粘贴我们要求您做的事情,而只是重新制定我们需要的部分。

For your issue, this condition is wrong:对于您的问题,这种情况是错误的:

if (number < 1 && number > 100)

It correspond to "lower than 1 and bigger than 100".它对应于“小于 1 且大于 100”。

So, instead of && (and) operator, use ||因此,不要使用&& (and) 运算符,而是使用|| (or) operator like that : (或)像这样的运算符:

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

Finally, what you are doing seems to have another issue.最后,你在做什么似乎有另一个问题。 If you enter an invalid number, it will ask again only one time, and not same the new value.如果您输入一个无效的数字,它只会再次询问一次,而不是相同的新值。 So, I suggest you to use while loop like that :所以,我建议你像这样使用 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;

To conclude, this is the full code:总而言之,这是完整的代码:

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();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM