2017-04-20 5 views
0

ライン「ながら」:取得私の私が述べ私のwhileループでエラーを取得しています

ここ

は「互換性のない型は、int型は、ブール値に変換することができません」私のコードを使用して、ファイルを使用して複数の数値の平均を求めようとしています。

誰でもこのエラーメッセージが表示される理由を教えていただけますか?

//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

以下のコードは、しかし、コンパイラがboolean値を期待して、intを返します。あなたが欲しいもの

while(infile.nextInt()) 

はこれです:

while(infile.hasNextInt()) 

も、私はあなたがこの意味を考える:

sum += num; 

ないこの:

sum = sum = num; 
関連する問題