2015-10-08 77 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'