我正在尝试编写一个程序,从文本文件中读取值并检查在特定值范围内有多少值。重点是最终让程序将每个范围的值总数打印到控制台。我有过一次可以执行此 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/