Java 给出给定数字的偶数、奇数和零
有人能帮我解决这个计算机科学课程的编程问题吗?我需要编写一个应用程序,将读取用户给定的数字,然后打印奇数和偶数以及零的数量。这就是我目前所拥有的。当输入一个数字时,我会连续收到过多的偶数数字Java 给出给定数字的偶数、奇数和零,java,Java,有人能帮我解决这个计算机科学课程的编程问题吗?我需要编写一个应用程序,将读取用户给定的数字,然后打印奇数和偶数以及零的数量。这就是我目前所拥有的。当输入一个数字时,我会连续收到过多的偶数数字 Scanner scan = new Scanner(System.in); //3.6 int value; int num = 0; int even = 0; int odd = 0; int zero = 0; System.out.println("Please enter a number.
Scanner scan = new Scanner(System.in);
//3.6
int value;
int num = 0;
int even = 0;
int odd = 0;
int zero = 0;
System.out.println("Please enter a number.");
value = scan.nextInt();
while(value >= 0)
{
num = (value % 10);
if(num % 2 == 0)
{
even++;
}
else if(num % 2 != 0)
{
odd++;
}
else if(num == 0)
{
zero++;
}
value = value/10;
System.out.println("even numbers: " + even);
System.out.println("odd numbers: " + odd);
System.out.println("zeros: " + zero);
}
只需将
while(value>=0)
更改为while(value>0)
并按如下方式重新排列if..else if
语句:
if(num == 0)
{
zero++;
}
else if(num % 2 == 0)
{
even++;
}
else if(num % 2 != 0)
{
odd++;
}
通过这种方式,您还可以计算零。(考虑
0%2==0
)只需将while(value>=0)
更改为while(value>0)
并按如下方式重新排列if..else if
语句:
if(num == 0)
{
zero++;
}
else if(num % 2 == 0)
{
even++;
}
else if(num % 2 != 0)
{
odd++;
}
通过这种方式,您还可以计算零。(考虑0%2==0
)
这样编写代码可以提供如下输出:
Please enter a number.
512222
even numbers: 4
odd numbers: 2
zeros: 1
这样编写代码可以提供如下输出:
Please enter a number.
512222
even numbers: 4
odd numbers: 2
zeros: 1
以下是一个简单有效的解决方案:
Scanner scan = new Scanner(System.in);
//3.6
int value;
int num = 0;
int even = 0;
int odd = 0;
int zero = 0;
System.out.println("Please enter a number.");
value = scan.nextInt();
char[] charValue = String.valueOf(value).toCharArray();
for (char c: charValue) {
num = Character.getNumericValue(c);
if (num == 0) {
zero++;
}else if (num % 2 == 0) {
even++;
} else {
odd++;
}
}
System.out.println("even numbers: " + even);
System.out.println("odd numbers: " + odd);
System.out.println("zeros: " + zero);
以下是一个简单有效的解决方案:
Scanner scan = new Scanner(System.in);
//3.6
int value;
int num = 0;
int even = 0;
int odd = 0;
int zero = 0;
System.out.println("Please enter a number.");
value = scan.nextInt();
char[] charValue = String.valueOf(value).toCharArray();
for (char c: charValue) {
num = Character.getNumericValue(c);
if (num == 0) {
zero++;
}else if (num % 2 == 0) {
even++;
} else {
odd++;
}
}
System.out.println("even numbers: " + even);
System.out.println("odd numbers: " + odd);
System.out.println("zeros: " + zero);
当num为零时,num%2将等于0,因此您将得到不正确计数为偶数的零。当num为零时,num%2将等于0,因此您将得到不正确计数为偶数的零。这将进入无限循环。用100I试试,结果是
zero:1
end然后它成功地结束了,看不到中断这进入了一个无限循环。用100I试试,结果是zero:1
end然后它成功地结束了,没有看到中断