我正在尝试制作一个简单的程序,读取用户输入的整数并根据值对其进行分类,直到计数器达到 70。
代码:
int counter = 0;
int value;
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
int i = 0;
Scanner scan = new Scanner(System.in);
while (counter != 70) {
value = scan.nextInt();
if (value >= 45 && value <= 55) {
a++;
counter++;
} else if (value >= 56 && value <= 66) {
b++;
counter++;
} else if (value >= 67 && value <= 77) {
c++;
counter++;
} else if (value >= 78 && value <= 88) {
d++;
counter++;
} else if (value >= 89 && value <= 99) {
e++;
counter++;
} else if (value >= 100 && value <= 110) {
i++;
counter++;
} else {
}
}
System.out.println(a + "-" + b + "-" + c + "-" + d + "-" + e + "-" + i);
显然,这段代码效率低下,而且我知道有更少耗时的方法来复制它。我现在感觉很愚蠢,所以请告诉我最有效的方法。
最佳答案
另外,如果执行一定次数,我觉得 for 循环更清晰。
考虑使用整数数组而不是 a-i
int [] values = new int [6];
Scanner scan = new Scanner(System.in);
for (int counter = 0; counter < 70; counter++)
{
int value = scan.nextInt();
if (value >= 45 && value <= 55) {
values[0]++;
} else if (value >= 56 && value <= 66) {
values[1]++;
} else if (value >= 67 && value <= 77) {
values[2]++;
} else if (value >= 78 && value <= 88) {
values[3]++;
} else if (value >= 89 && value <= 99) {
values[4]++;
} else if (value >= 100 && value <= 110) {
values[5]++;
} else {
counter--; // out of bounds - try again
}
}
关于java - 如何有效地对用户输入进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44667070/