2011-03-19 42 views
0

我已经设置了一个分配,我必须找到用户输入的正数列表的平均值,输入的数字量是未知的。到目前为止,我已经有了一个程序来添加所有已输入的数字(当用户输入0时该条目终止)。我不想在这里回答这个问题,因为我真的很想学习这个速度!简单Java查询 - 从整数中获取结果

我有while语句的麻烦,

我想说

WHILE (numberentered = 0);

......

,但这似乎没有工作

我原本是这样做的:

while (numberentered >= 1); 

    System.out.print (numbersum); 

但是当输入一个负数时,它仍会跳出do循环。

任何想法的家伙....如果你明白我的问题,但它仍然措辞非常糟糕......请编辑。

谢谢。

回答

1

你不应该这样做吗?

while(numberEntered != 0) { 
    // add it up 
} 
2
while (numberentered != 0) { < read new number and add it to total and ... (but you didn't want the answer...) > } 
+0

啊 - 谢谢你..不想要答案,不,我不想要如何找到平均数字输入等答案,但我确实希望这个解决方案 – Phil 2011-03-19 14:23:48

1

好像也许你的意思做:

while (numberentered != 0) { 
    //do stuff 
} 

注意,别无分号需要的“而”线本身。

0

这是我理解的问题陈述:

“允许用户多次输入数字,但是当它进入0时,程序会显示数字的平均值之前所输入0并退出”

您可能会走这条路:

public static void main(String args[]) { 

float no = 0; 
float average = 0; 
int count = 1; 
    if(args.length == 0) { 
    printf("No number being entered...program exits"); 
    System.exit(0); 
    } 
    if(args[0] == 0) { 
    displayAverage(average); 
    return; 
    } 
    for(count;count<args.length;count++){ 
    try { 
      no = Float.parseFloat(args[count]); 
      if(no == 0) { 
       break; 
       } 
      average = average + no; 
     } 
    catch(NumberFormatException nfe) { 
     printf("Please enter only numbers"); 
     } 
    } 
average = average/count; 
printAverage(average); 
} 

private void displayAverage(float average){ 
System.out.println("average is: "+ average); 
} 

但愿这有助于..