使用循环我想计算Java中n个数字的平均值,当用户输入0时,循环结束。 这是我写的代码:
public class start {
public static void main(String[] args) {
System.out.println("Enter an int value, the program exits if the input is 0");
Scanner input = new Scanner (System.in);
int h = 0;
while (input.nextInt() == 0){
int inp = input.nextInt();
int j = inp;
int i = 0;
h = j + i;
break;
}
System.out.println("The total is: "+ h);
}
}
我是否犯了任何逻辑错误?
答案 0 :(得分:1)
“我是否犯了任何逻辑错误?”
是。这看起来像是一个家庭作业问题所以我不会为你拼出来,但想想i
的价值是什么,以及h = j + i
在这种情况下的含义。
调用input.nextInt()
时还需要小心。每次通过循环调用它时会发生什么(这是你在做什么)?
答案 1 :(得分:1)
家庭作业,对吧?
在while循环条件下调用input.nextInt()
并填写int inp
意味着循环中的每次行程都在读取两个数字(其中一个被忽略)。您需要找到一种方法,每循环迭代只读取一个数字,并将其用于== 0
比较和inp
。
此外,你在while循环之外做了h
正确的事情,但我认为你在循环中让你自己感到困惑j
和i
。您可能会考虑使用稍微更具描述性的名称 - 这将使您的代码更易于推理。
答案 2 :(得分:1)
答案 3 :(得分:0)
您需要记录您阅读的数字,以便将总数除以此数字以获得平均数。
答案 4 :(得分:0)
编辑了while循环:
while(true){
int e=input.nextInt();
if(e==0) break;
h+=e;
numberOfItems++;
}
您的原始实现称为nextInt()两次,其效果是丢弃所有其他数字(这绝对不是您打算做的)。
答案 5 :(得分:0)
假设您只询问用户一次,输入数字为零,您只想显示平均值。你需要一个在while循环之外声明的变量,它将继续添加用户输入的不同数字,以及跟踪用户输入的个案数量的第二个变量,并保持自己递增1,直到数字不为零,如用户。当用户输入0时,循环将中断,此处将显示我们的平均值。
import java.util.Scanner;
public class LoopAverage
{
public static void main(String[] args0)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter any Integer value : ");
int value = -1, sum = 0, count = 0;
while((value = scan.nextInt()) != 0)
{
count++;
sum = sum + value;
}
System.out.println("Average : " + (sum / count));
}
}
希望这可能会有所帮助,
此致
答案 6 :(得分:0)
是的,大量的逻辑错误。
还需要考虑其他一些事项:
答案 7 :(得分:0)
我建议你参考“while”循环的条件:如果条件满足,程序会做什么? (如果你对VB有点了解,那么do ...直到......并且......当......?)
另外,当你调用scanner.nextInt()时,程序会做什么?对于每个输入,您应该如何调用它?
最后但并非最不重要的是,您何时应该使用“休息”或“继续”?
对于基础知识,如果你在课程中,建议你理解笔记。或者你可以找到一些解释Java细节的好书。例如用Java思考
喜欢学习Java。