[英]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.