2011-10-19 87 views
-4

我使用eclipse作爲Ide。我試圖做以下任務的源代碼:無法正常解決任務

「編寫一個算法來提示用戶輸入一系列整數(每個單獨一行)輸入將以零值「:

這是我的源代碼,如果任何人有任何想法或建議,我會rategull聽到他們。謝謝你。

import java.util.Scanner; 

public class CountNums {  

    public static void main(String[] args) { 
     Scanner input = new Scanner (System.in);   
     System.out.println("Enter a series of integers and 0 for exit of the loop:");  
     int i = input.nextInt();   
     int negative = 0;  
     int positive = 0 ;   
     while (i != 0) { 
      System.out.println("Enter next integer: "); 
      i = input.nextInt();   
      if (i < 0) { 
       System.out.println(negative += 1); 
      }else if (i > 0) { 
       System.out.println(positive += 1);   
      } 
     } 
    } 

} 
+0

它聽起來像一個家庭作業。網站的政策表示我們不應該回答這個問題! – Stefano

+1

@Stefano你可以用提示的方式回答,這不是最好的做法,直接給出答案... – berry120

+0

你的問題是什麼? – flash

回答

2

你有兩個問題:

  1. 用戶輸入被計數忽略的第一個數字。爲什麼?
  2. 當程序結束時,變量positivenegative不按要求顯示。相反,它們每次都會顯示用戶輸入的號碼,第一次除外。
2

我不會爲你提供書面的代碼,但我會提供希望的東西來幫助你思考。

你所要求的問題並不難,所以你應該能夠多思考一點。

你似乎是在正確的軌道上。說明中說明您希望輸出在用戶輸入0後輸入的正數和負數的數量。此時,您在每次用戶輸入後輸出數字。 < - 想一想,以及你應該在哪裏放置你的輸出。

你還需要在while循環之外尋找nextInt()。當你輸入一個數字時,試着追蹤程序,看看會發生什麼。在下面的if語句被調用之前,你應該罰款你實際上輸入了2個整數。

P.S.你可能想確保你的代碼的格式是未來體面......

編輯:阿多一點幫助:

System.out.println(negative += 1); 

目前做兩件事情,它增加你的數計數器到目前爲止的負整數,並打印出該值。

你是對的,你希望在每次運行while循環時都增加這個值(並且用戶輸入一個數字< 0),但是你不想做的是在該階段打印它該計劃也是如此。考慮打破的代碼位成兩個,並把相應的部分在適當的位置:)

所以,想一想:

如何通過自身增加一個變量,以及如何通過自己打印變量。當然,也要改正這一點。

0

你不需要做System.out.println()...每次你讀一個數字。只需遞增計數(正數++)並執行System.out.println(「正數計數爲」+正數);在while循環之後。

0

您在每次迭代中打印負值或正值的數量。您想要在,while循環之後打印

相關問題