2016-03-05 69 views
1

Im堅持一個練習我做它說:「編寫一個程序,確定並打印從鍵盤讀取的整數值中的奇數,偶數和零位數。我在做什麼錯,怎麼做我可以糾正我的錯誤條件和循環練習

import java.util.Scanner; 

public class OddEven { 
    public static void main(String[] args){ 
    Scanner scan = new Scanner(System.in); 

    int odd=0; 
    int even=0; 
    int zero=0; 
    int num=0; 
    int value; 

    System.out.println("Enter a value: "); 
    value=scan.nextInt(); 
    if (value%2==0) 
     even=even+1; 
    else 
     odd=odd+1; 
    System.out.println("even = "+ even); 
    System.out.println("odd = "+odd); 
    System.out.println("zero = "+zero); 
    } 
} 
+1

你的代碼編譯沒有錯誤嗎?如果它編譯,它是什麼,你期望什麼。我看到你的標題中的「循環」,但我沒有看到你的代碼中的任何循環。 – purplepsycho

回答

1

你必須檢查每個數字在一個時間:

int odd, even, zero, value; 
value = scan.nextInt(); 

while(value > 0) { 
    int digit = value%10; //isolates only the last digit 
    if(digit==0)zero++; 
    else if(digit%2==0)even++; 
    else odd++; 
    value /= 10; //removes the last digit 
} 
1

條件語句

if (value%2==0) 
    even=even+1; 
else 
    odd=odd+1; 

不是計數奇數或偶數。它只是確定輸入值(整個值)是奇數還是偶數。

由於這顯然是一個家庭作業問題,我只會給一些提示:

  1. 你必須通過所有的數字環路。在十進制系統中,有一種簡單的整數方式來獲取最後一位數字,其餘數字作爲一個新的但較小的整數值。
  2. 一旦你有單(最後一個)數字,你可以檢查它是奇數,偶數還是零。
  3. 循環結束時,從第1步剩餘值變0有些謹慎:必須在開始一個特殊的檢查,因爲原始值可能已經被0

看看其他已經爲您提供一些代碼的答案。但作爲初學者,你應該首先嚐試自己編寫代碼。