2017-04-20 62 views
0

我对我的while循环得到一个错误,指出:获取上不兼容的类型错误我“而”行

“不兼容的类型,INT不能转换为boolean”

这里是我的代码,我试图找到使用文件的几个数字的平均值。

任何人都可以告诉我为什么我得到这个错误信息?

//Find the average of several numbers using a file. 
import java .io.*; 
import java.util.Scanner; 
public class inputfile 
{ 
    public static void main(String[] args)throws IOException 
    { 
    int num, count=0; 
    double sum=0, avg; 

    Scanner infile = new Scanner(new FileInputStream("data.dat")); 

    while(infile.nextInt()) 
    { 
     num = infile.nextInt(); 
     sum = sum = num; 
     count++; 
    } 

    infile.close(); 
    avg = sum/count; 
    System.out.println("The sum of the numbers is " + sum); 
    System.out.println("The average of the numbers is " + avg); 
    } 
}  
+0

而(infile.hasNext( )) – Misys

+3

'infile.nextInt()'返回什么? 'while(...)'中的表达应该是什么类型? –

回答

3

下面的代码返回一个int,但是编译器期待一个boolean值。

while(infile.nextInt()) 

你想要的是这样的:

while(infile.hasNextInt()) 

另外,我觉得你的意思是这样的:

sum += num; 

不是这个:

sum = sum = num;