2016-03-05 126 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

看看其他已经为您提供一些代码的答案。但作为初学者,你应该首先尝试自己编写代码。