我正在制作一个简单的程序,要求用户在0-19之间输入五个数字。我想在每个数字后添加一些东西(比如if语句),以确保它在该范围内。如果没有,程序应该说“请再次阅读说明”,然后是System.exit(0)。这是相关代码的一部分:
System.out.println("Please enter 5 numbers between 0 and 19");
System.out.print("1st Number: ");
userNum1 = scan.nextInt();
System.out.print("2nd Number: ");
userNum2 = scan.nextInt();
System.out.print("3rd Number: ");
userNum3 = scan.nextInt();
System.out.print("4th Number: ");
userNum4 = scan.nextInt();
System.out.print("5th Number: ");
userNum5 = scan.nextInt();
非常感谢任何帮助。
答案 0 :(得分:1)
您可以在每个输入之后添加它,但是您可能想要考虑将此逻辑放入其自己的方法中,然后您可以重用代码并使用类似validateInput(userNum1);
的方法调用它。
将val
替换为您的实际变量名称。
if (val < 0 || val > 19) {
System.out.println("please read the instructions again");
System.exit(0);
}
答案 1 :(得分:1)
这段代码将为您提供帮助,我添加了一些证券:
public static void main(String[] args) {
int count = 1;
Scanner scan = new Scanner(System.in);
List<Integer> myNumbers = new ArrayList<Integer>();
System.out.println("Please enter 5 numbers between 0 and 19");
do {
System.out.println("Enter Number "+count+" ");
if(scan.hasNextInt()){
int input = scan.nextInt();
if(input >= 0 && input <= 19){
myNumbers.add(input);
count++;
}else{
System.out.println("Please read instructions again");
System.exit(0);
}
}else{
scan.nextLine();
System.out.println("Enter a valid Integer value");
}
}while(count < 6);
/* NUMBERS */
System.out.println("\n/** MY NUMBERS **/\n");
for (Integer myNumber : myNumbers) {
System.out.println(myNumber);
}
}
希望有所帮助
答案 2 :(得分:1)
首先,我将创建一个迭代N次的for循环,其中N是您要求的数字数(在您的情况下为5)。想象一下你的50个数字的例子;这将是非常重复的。
然后,当您在for循环中获得0001-01-01 12:00:00 AM
的每个数字时,您可以根据需要进行验证:
scan.nextInt()
此外,当他们输入一个超出范围的数字时,你可以将你的逻辑放在一个while循环中,这样它就会重新提示他们输入数字。这样,用户不必重新启动应用程序。类似的东西:
if (userNum < 0 || userNum > 19) {
// print error message, and quit here
}
然后根据用户是否输入有效数字,根据需要设置boolean runApplication = true;
while(runApplication) {
// do your for-loop with user input scanning
}
标志。
答案 3 :(得分:0)
由于您已经知道用户希望输入多少个数字,我建议您使用for循环。它使您的代码更加优雅,您可以通过更改循环的结束条件来添加任意数量的条目。看起来很长的唯一原因是因为数字1,2,3都以不同的格式结束,即最终的thcoRD,但其余的数字都以TH结尾。这就是为什么我必须在循环中实现一些if else语句。
为了解释代码,每次循环时它首先告诉用户他/她输入的数字的计数。然后每次循环循环时都会更新numEntry,因此您不需要为多个变量分配多个输入。继续更新相同的变量更有效。如果用户输入的输入小于0或者大于19,则系统会在出现错误消息后退出。
System.out.println("Please enter a number between 0 and 19");
Scanner scan = new Scanner(System.in);
for(int i = 1; i <=5; i++){
if(i == 1)
System.out.println("1st Number");
else if(i == 2)
System.out.println("2nd Number");
else if(i == 3)
System.out.println("3rd Number");
else
System.out.println(i + "th Number");
int numEntry = scan.nextInt();
if(numEntry < 0 || numEntry > 19){
System.out.println("Please read instructions again.");
System.exit(1);
}