2015-10-08 79 views
-3

我試圖確保我的程序不會計爲零作爲偶數,並且明確寫道它必須符合這些條件。但它仍然算它!?!?程序計數0甚至

import java.util.Scanner; 

    public class CountDigits 
    { 

    public static void main (String []Args) 
    { 
     Scanner keyboard = new Scanner (System.in); 
     System.out.println("Enter a number:"); 
     long input = (keyboard.nextLong()); 
     String inputString = Long.toString(input); 
     char [] inputChar = (inputString.toCharArray()); 



    int numOdds = 0; 
    int numEvens = 0; 
    int numZeros = 0; 


    int i = 0; 

    while (i<inputString.length()) 
    { 

    if (inputChar[i]!=0&&inputChar[i]%2==0) 
    { 
     numEvens++; 

    } 
+0

什麼是'inputChar'和什麼是'inputString'?分享完整的代碼 –

+2

你有沒有試過將'inputChar'轉換爲數字? – Wazaaaap

回答

1

您使用的是char[],而不是int[]char0不同於char'0'

if (inputChar[i]!='0' && inputChar[i]%2==0) 

但是它可能是少混亂,如果您使用的int[]代替:如果你這樣做,你的程序將工作。

0

沒有試圖運行你的代碼,我可以看到你在做inputChar[i]%2==0

inputChar[i]%2將返回的inputChar[i]/2那麼,inputChar [I]的值爲0,0分2將等於餘數爲0所以會有一0

如果你想數0奇,你還需要檢查0

請注意,inputChar [i]是一個字符,而不是一個整數,所以你需要檢查剩餘inputChar [i]!='0'