Java反问题

标签 java if-statement while-loop io counter

我正在尝试编写一个程序,从文本文件中读取值并检查在特定值范围内有多少值。重点是最终让程序将每个范围的值总数打印到控制台。我有过一次可以执行此 1 个值的地方,但随后它会随着每个新的 int 重置。在当前,它只会一遍又一遍地重复第一个数字。重申一下,我试图让它在对文本文件中的值进行排序后报告某个值在数字范围内的次数。

这是我的代码。

package lab2;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Lab2 {

    public static void main(String[] args) throws FileNotFoundException {

        File file = new File("lab2_input.txt");
        Scanner scan = new Scanner(file);

        int counter1 = 0;
        int counter2 = 0;
        int counter3 = 0;
        int counter4 = 0;
        int counter5 = 0;
        int counter6 = 0;
        int counter7 = 0;
        int counter8 = 0;

        while(scan.hasNextLine()) {

            int number = scan.nextInt();
            System.out.println(number);

            if (number <= 24){
                counter1++;
            }
            if (25 <= number && number <= 49){
                counter2++;
            }
            if (50 <= number && number <= 74){
                counter3++;
            }
            if (75 <= number && number <= 99){
                counter4++;
            }
            if (100 <= number && number <= 124){
                counter5++;
            }
            if (125 <= number && number <= 149){
                counter6++;
            }
            if (150 <= number && number <= 174){
                counter7++;
            }
            if (175<= number && number >= 200){
                counter8++;
            }

        }

        System.out.println(counter1);
        System.out.println(counter2);
        System.out.println(counter3);
        System.out.println(counter4);
        System.out.println(counter5);
        System.out.println(counter6);
        System.out.println(counter7);
        System.out.println(counter8);
    }

}

最佳答案

我想你的意思是检查例如从 25 到 49 的范围,然后代替:

if (25 <= number && number <= 49){
    counter2++;
}

你应该写:

if (25 >= number && number <= 49){
    counter2++;
}

其他支票也一样。

P.S.:我建议将 counter 设为数组并根据计算出的索引递增元素,因为范围始终为 25:var index = number/25

关于Java反问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57967247/

相关文章:

java - if-else语句去错误的条件语句java?

python - Pyserial 读取循环需要多个输入来注册

c - 如何让它注册 -1 作为退出并显示从 1 开始的编号列表?

.after() 内的 Javascript while 循环

java - 当某些行已经存在时,Excel POI 意外丢失行

Java - 多线程和文件问题

java - 如何获取当前时间并将其设置为时钟?

java - 如何维护 JSONObject 的顺序

java - 我不明白为什么我的 if 语句有效

r - 为什么我的 for 循环在 R 中运行一次额外的迭代?