java - 如何有效地对用户输入进行分类

标签 java loops java.util.scanner

我正在尝试制作一个简单的程序,读取用户输入的整数并根据值对其进行分类,直到计数器达到 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/

相关文章:

java - 泛型数组的洗牌算法

node.js - ES5,如何在循环中使用 Promise

Java,将华氏度转换为摄氏度

java - 如何从 native 模块触发事件

java - Java 读/写文件中的编码不正确

java - 使用 java.nio 在文件更改时引发创建/移动/删除事件

php - 使用 mysqli 从数据库中获取单个结果

使用数组计算 5 个整数的平均值

java - java.util.Scanner 和字符串的问题

java - Scanner.nextLine 输入跳过