条件和循环练习
问题描述:
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);
}
}
答
你必须检查每个数字在一个时间:
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
}
答
条件语句
if (value%2==0)
even=even+1;
else
odd=odd+1;
不是计数奇数或偶数。它只是确定输入值(整个值)是奇数还是偶数。
由于这显然是一个家庭作业问题,我只会给一些提示:
- 你必须通过所有的数字环路。在十进制系统中,有一种简单的整数方式来获取最后一位数字,其余数字作为一个新的但较小的整数值。
- 一旦你有单(最后一个)数字,你可以检查它是奇数,偶数还是零。
- 循环结束时,从第1步剩余值变0有些谨慎:必须在开始一个特殊的检查,因为原始值可能已经被0
看看其他已经为您提供一些代码的答案。但作为初学者,你应该首先尝试自己编写代码。
你的代码编译没有错误吗?如果它编译,它是什么,你期望什么。我看到你的标题中的“循环”,但我没有看到你的代码中的任何循环。 – purplepsycho