java段中的逻辑错误

时间:2014-12-09 18:19:33

标签: java

以下Java代码段应该以双精度打印用户输入的一系列非负整数的平均值。负输入表示序列的结束(它本身不是序列的一部分)。但是,代码不起作用。我应该在这个段内找到4个逻辑错误。请帮我找4个逻辑错误??我知道一个是它的整数除法。

public class practice
{
   public static void main (String[]args)
   {
   int sum = 0;
   int numVals = 0;
   Scanner scan = new Scanner(System.in);
   System.out.println(("enter next integer (-ve to stop): ")); 
   int i = scan.nextInt(); 

   while (i > 0)
   {
       sum = sum + i; 
       numVals = numVals + 1; 
    }

   System.out.println("average = " + sum / numVals); 
}

}

2 个答案:

答案 0 :(得分:1)

我不会给你完整的解决方案,但是,如果你注意:

会很有帮助
    正如你所说,
  1. int师,
  2. 你的循环终止了吗?有人在改变i吗?提示:不,
  3. 你怎么要求输入?你看到那里有任何循环吗?为什么它只要求你输入一个?
  4. 不是错误,但要注意Java命名约定,类名应以大写字母开头

答案 1 :(得分:1)

由于作业是出于逻辑错误,我可以指出其他错误。

  • 类名应以大写字母开头。
  • println不需要两个嵌套的括号。
  • sum应该是长而不是int以避免溢出。