2015-10-01 35 views
0

嗨,我需要幫助完成這項任務。當我運行我所擁有的只是永遠循環,幫助將非常感激。這是我的任務是: 在下一頁寫一個程序段,從鍵盤讀取一個整數序列,直到輸入0(零)。輸入時輸出每個整數(除了停止程序的0)和輸入整數的平均值。整數在最後返回平均值的序列

  1. 每個非零整數打印在一個單獨的行上。
  2. 這個過程一直持續到零被讀取爲止,此時段停止。

這是我到目前爲止有:

import java.util.Scanner; 

public class List { 
    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 
     int boom = 0; 
     int sum = 0; 
     double average = 0; 
     int count = 0; 
     System.out.println("Enter a nonzero integer, please!"); 
     boom = keyboard.nextInt(); 
     while (boom != 0) { 
      sum += boom; 
      count++; 
      average = ((double) sum)/count; 
      System.out.println("The average is " + average); 
     } 
    } 
} 
+1

你需要正確縮進,以便你(和我們)可以理解你的代碼。你的'keyboard.nextInt()'行需要在循環內部,然後你需要修正循環邏輯。 –

回答

0

您只讀取一次鍵盤輸入。這就是你應該做的:

while (boom=keyboard.nextInt() != 0) { 
    sum += boom; 
    count++;    
    average = ((double)sum)/count; 
    System.out.println ("The average is " + average);  
} 
0

它將永遠循環下去,如果你輸入的boom=keyboard.nextInt()階段非零整數。之所以會出現這種情況,在你的時間段內,繁榮不會改變,停止的條件是繁榮不等於零。

您需要在環路外將boom設置爲非零值,並將您的任務從loop中的鍵盤移動到int的boom。