【发布时间】:2018-03-27 22:41:27
【问题描述】:
我在另一个 Java 程序上遇到了问题,这可能是很小的问题,但由于某种原因,我无法理解问题所在。之前已经多次提出类似的问题,但它并没有给出该程序所需的完全相同的东西,至少给出的答案没有帮助。
程序需要计算用户最初输入的一组数字的平均值。声明为inputNumber。程序然后询问用户用户指定的设定数量的每个数字。这是addedNumber,所有这些都加到一个总数中,即numberSum,然后除以inputNumber得到总数的平均值,该值声明为numberAverage。
例如:如果程序提示我要输入多少个数字并且我输入 4 (inputNumber),扫描仪会提示我输入数字 4 次 (addedNumber),然后我输入 4 个数字,例如数字:2、3、6 和 1。这些数字相加为和 12 (numberSum),然后除以得到 4 个数字的平均值 (numberAverage)。
将计算提示用户多少次的计数器i将增加,直到达到用户输入计算的次数,这在for循环中单独声明。整个程序发生在while 循环上,直到用户输入0 作为inputNumber 的值,然后将中断循环并终止程序。
代码如下:
import java.util.Scanner;
/**
* Write a description of class AverageNumbers here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Average2
{
public static void main ()
{
int inputNumber;
double numberSum = 0;
Scanner scan = new Scanner(System.in);
while (true) {
System.out.print("Please enter the amount of numbers you want to be calculated. (0 to quit): ");
inputNumber = scan.nextInt();
if (inputNumber == 0) {
System.out.println("Program Ended");
break;
}
for ( int i = 0; i < inputNumber; i++) {
System.out.print("Please enter a value:" );
double addedNumber = scan.nextInt();
numberSum += addedNumber;
}
double numberAverage = numberSum/inputNumber;
System.out.println("Average: " + numberAverage);
}
}
}
但问题来了:
如您所见,只有循环的第一部分获得了正确的平均值,但第二次循环却没有。我被卡住了,循环应该如何进行,以便每次都正确计算平均值,而不仅仅是第一次。我认为这与初始化有关,但将变量初始化为0、1 或-1 并没有帮助。加上将变量设置为0 会使程序永远不会运行,因为这是停止它的条件。如果它碰巧是一个简单的初始化错误,请有人解释一下代码出了什么问题,而不是说这个问题之前已经被问过,好吗?
【问题讨论】:
-
你可以在while循环中声明
double numberSum = 0;。 -
哦,就是这么简单。谢谢,成功了^^
标签: java for-loop while-loop java.util.scanner