为什么在以0结尾的整数输入时看到错误?

时间:2016-10-14 05:13:02

标签: java for-loop

编写一个Java程序,要求您输入数字并添加它们,直到您键入0.然后将打印出来

数字的平均值。以下是输出结果的示例:

Please type a sequence of numbers terminated by a 0 

1 

5 

4 

0 

The total was 10.0 

You typed in 3 numbers 

The average is 3.3333

我决定自学Java&刚开始编程不久前我还在努力完全理解用于满足程序要求的组合。我一直在做这些在线挑战,并要求一个程序输入数字并添加它们直到用户输入零,最重要的是,它还必须显示输入了多少总数和那些的平均值。我已经开始使用while循环和扫描仪,但我目前正在努力和坚持这个问题:

import java.util.Scanner;  公共课问题4 {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.println("Please type a sequence of numbers terminated by a 0");
    int counter = 0;
    int num = scan.NextInt();
    while (num != 0){
        System.out.println(num);
        if (num == 0) break;
        counter++;
    }
        int total = 0;
        total+=num;
        double average = 0;
        average = total / counter;

            System.out.println("The total was " + total);
            System.out.println("You typed in " + counter + " numbers");
            System.out.println("The average is " + average);
    }
}

我找不到符号'第8行的错误

3 个答案:

答案 0 :(得分:1)

您的计划有2个问题: 1。您在使用前忘记声明num。声明它并为其分配非零值。 2。您应该在循环中将num添加到total,这样您也应该在循环之前声明它。

int counter = 0, num = 1, total = 0;
while(num != 0){
    num = scan.nextInt();
    if(num == 0)
        break;
    counter++;
    total += num;
}
double average = (double)total/counter;

建议:无论何时将整数除以另一个整数(在本例中为total / counter),请确保将一个整数转换为double(或float)以防止丢失小数位。

答案 1 :(得分:0)

您已在循环中声明num。因此,它不能在循环外访问,但是你在外面使用它,因此编译器找不到num
为了获得所需的结果,在while循环之前声明num你应该学习关于变量的范围。您的程序不会产生预期的输出,因为您应该在循环

中计算total变量

答案 2 :(得分:0)

您需要在使用之前声明num变量