Java 从文件中确定偶数
你好,先生。我的老师告诉我们从输入文件中取出所有的偶数。但偶数一直告诉我是23个偶数,应该是8和66.67%。我在文件中的输入是: 5 7 2 8 9 10 12 98 7 14 20 22(带空格) 我的代码是:Java 从文件中确定偶数,java,file-io,Java,File Io,你好,先生。我的老师告诉我们从输入文件中取出所有的偶数。但偶数一直告诉我是23个偶数,应该是8和66.67%。我在文件中的输入是: 5 7 2 8 9 10 12 98 7 14 20 22(带空格) 我的代码是: import java.io.*; import java.util.*; public class number2 { public static void main (String[] args) throws FileNotFoundException{
import java.io.*;
import java.util.*;
public class number2 {
public static void main (String[] args) throws FileNotFoundException{
Scanner input = new Scanner(new File("number.txt"));
int sum = 0;
int count = 0;
int evenCount = 0;
float percent = 0;
while(input.hasNextInt()) {
int num = input.nextInt();
sum+=num;
count++;
evenCount = evenNumber(num, count);
}
percent = (evenCount*100)/count;
System.out.println("\n" +count + " Numbers, " + "Sum = " +sum);
System.out.println( evenCount + " evens " +"(" + percent +"%)");
}
public static int evenNumber(int counter, int number){
if(number%2==0)
counter++;
return counter;
}
}
我想您正在使用切换参数调用
evenNumber
方法
while(input.hasNextInt()){
int num = input.nextInt();
sum+=num;
count++;
//first parameter is number read from file, second parameter is the current count
evenCount = evenNumber(num, count);}
//...
在您的方法上evenNumber
您拥有的方法签名
//first parameter is the counter, second parameter is the read number
public static int evenNumber(int counter, int number)
您应该切换while块中的evenNumber
方法内调用的参数:
evenCount=evenCount(evenCount,num)
此外,您应该将evenCount
传递给evenNumber
方法而不是count,否则您将增加所有数字的计数,而不是仅增加偶数的计数