嗨,我是Java的新手,并通过在线练习来熟悉它。我如何正确编码while循环,以便每次用户输入错误时,它都会再次询问相同的问题,而不会继续进行下一行代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Array {
public static void main(String[] args) {
Scanner dataIn = new Scanner(System.in);
int entries = 0;
List<Integer> grade = new ArrayList<Integer>();
System.out.println("Enter number of students? ");
entries = dataIn.nextInt();
boolean checker = true;
while (checker){
for (int i = 0; i < entries; i++){
int input;
int addToList;
System.out.println("Enter grade for student: ");
input = dataIn.nextInt();
grade.add(input);
if (input >= 0 && input<= 100) {
}else {
System.out.println("invalid input try again..");
checker = false;
}
}
}
int sum = 0;
int count = grade.size();
double mean;
for (int grades : grade){
sum+= grades;
}
mean =(double)sum/count;
System.out.println("The Grades are: " + grade);
System.out.println("The number of elements in the Array is " + grade.size());
System.out.println("The average is: " + mean);
}
}
您的逻辑是倒退。如果输入不正确,则希望循环继续。有两种方法可以解决此问题:
更改while(checker)
为while(!checker)
打印错误消息后,请更改checker=false
为checker=true
。并设置checker=false
在if
分支中。
如果将checker
变量名更改为更直接读取的名称,则可能会有所帮助。例如,isInputCorrect
当您编写时,阅读非常好,while(!isInputCorrect)
并且还使true
和的值更加清楚false
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句