Java 在“我的”上获取不兼容类型错误;而";线

Java 在“我的”上获取不兼容类型错误;而";线,java,Java,我在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[] ar

我在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);
   }
}    

下面的代码返回一个
int
,但是编译器需要一个
布尔值

while(infile.nextInt())
你想要的是:

while(infile.hasNextInt())
还有,我想你的意思是:

sum += num;
不是这个:

sum = sum = num;

下面的代码返回一个
int
,但是编译器需要一个
布尔值

while(infile.nextInt())
你想要的是:

while(infile.hasNextInt())
还有,我想你的意思是:

sum += num;
不是这个:

sum = sum = num;

而(infle.hasNext())则
infle.nextInt()
返回什么?
while(…)
中的表达式应该是什么类型?while(infle.hasNext())中的表达式返回什么?
while(…)
中的表达式应该是什么类型?