提示:您可以使用布尔表达式(x / 2)* 2 == x来测试整数x是偶数还是奇数。甚至使此表达式为true的整数,奇数整数使表达式为false。使用for循环迭代五次。在每次迭代中,请求用户输入一个整数。打印用户键入的每个整数,以及它是偶数还是奇数。跟上用户输入的偶数和奇数整数的数量,并在完成后打印“完成”,这样用户就不会尝试输入另一个整数。最后,打印出输入的偶数和奇数的整数。
这是我到目前为止的代码:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter an integer.");
int x = in.nextInt();
boolean even;
for (int i = 0; i == 5; i++) {
if ((x / 2) * 2 == x) {
even = true;
System.out.println(x + " is even.");
}
if ((x / 2) * 2 != x) {
even = false;
System.out.println(x + " is odd.");
}
}
}
不寻求解决方案,只是帮助我需要做些什么。对整个布尔事物真的很困惑。
答案 0 :(得分:1)
好吧,你的循环不会开火;每次到达循环时,i == 5
总是假的。
您可能希望将循环语句更改为:
for (int i = 0; i <= 5; i++) {
// code
}
此外,凭借Java评估分支的方式,变量even
可能尚未初始化。您需要使用值实例化它。
boolean even = false;
最后,判断数字是否均匀的最简单方法是使用模数运算符。如果它可以被2整除,那就是偶数。否则,这很奇怪。
if (x % 2 == 0) {
// even, do logic
} else {
// odd, do logic
}
你 缺少分配中的要求 - 也就是说,能够保持奇数和偶数的运行记录,但我将其作为练习留给读者。< / p>
答案 1 :(得分:1)
这似乎就像你的作业一样。
似乎你的'布尔偶'甚至没有被使用,我建议你不要声明也不要使用它。如果是偶数或奇数更好,则使用x = x%2来获取数字。如果是偶数x应该是0,如果它是奇数x应该是1.%等于MOD
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x;
int even = 0; // keep tracks the number of even
int odd = 0; // keep tracks the number of odd
for (int i = 0; i < 5; i++) {
System.out.println("Enter an integer.");
x = in.nextInt();
if (x % 2 == 0) {
even++;
System.out.println(x + " is even.");
}
if (x % 2 == 1) {
odd++;
System.out.println(x + " is odd.");
}
}
System.out.println("Done");
System.out.println("Evens: " + even "\nOdds: " + odd);
}
此代码应该是您的作业要求的答案。你的in.nextInt()应该在for循环中,因为你需要请求用户5次。不仅如此,你的循环应该是&lt; 5,因为它将从0,1,2,3,4
循环5次答案 2 :(得分:0)
您缺少的部分是跟踪遇到的偶数和奇数。你需要两个单独的int
变量,你将在主循环之前声明它们。
int numEvens = 0;
int numOdds = 0;
然后,在您确定输入的数字是奇数还是偶数的分支中,您将增加这些数字中的一个或另一个。
最后,在程序结束时,您可以通过消息将它们打印出来。
答案 3 :(得分:0)
如果您想使用java boolean ..我认为这可能会对您有所帮助
package stackOverFlow;
public class EvenOddNumber {
public boolean findEvenOdd(int num) {
if (num % 2 == 0) {
return true;
}
else {
return false;
}
}
}
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
int num;
EvenOddNumber e = new EvenOddNumber();
System.out.print("Enter a number:");
Scanner scan = new Scanner(System.in);
num = scan.nextInt();
System.out.println( num+" is even number?: " + e.findEvenOdd(num));
}
}
答案 4 :(得分:-1)
查找偶数和奇数值的更简单方法是将数字除以2并检查余数:
if(x % 2 == 0) // remainder is 0 when divided by 2
{
//even num
}
else
{
//odd num
}