这实际上是我的实验室问题之一。
您可以使用布尔表达式(x / 2)* 2 == x来测试整数x是偶数还是奇数。甚至使此表达式为true的整数,奇数整数使表达式为false。使用for循环迭代五次。每次迭代时,请求用户输入一个整数。打印用户键入的每个整数,以及它是偶数还是奇数。跟上偶数 用户输入的奇数和奇数,并在完成时打印“完成”,因此用户不会尝试键入另一个整数。最后,打印出输入的偶数和奇数的整数。
我基本上知道这个问题需要我做什么。但是,我不太明白为什么布尔表达式(x / 2)* 2 == x,可以测试整数是偶数还是奇数。让我说我的数字是59,这显然是一个奇数。 59除以2是29.5。 29.5乘2,等于59.无论x是什么,(x / 2)* 2总是等于x。那么当整数是奇数时,如何使这个表达式成为假。然后我可以确定我应该打印什么。
答案 0 :(得分:2)
因为你正在处理整数,所以总是向下舍入到最接近的整数。
59/2 = 29
当所有元素都是整数时。
将结果乘以2会得到58
,所以由于2个数字不相同,我们推断数字59是奇数。
答案 1 :(得分:0)
这应该是您以初学者的方式编写的代码,如果您仍然不理解某些问题。使用公式x ==(x / 2)* 2,因为当你划分两个整数变量时,结果总是一个整数,后来如果它是奇数,则不会给你相同的初始值数。 (59/2 = 29 => 29 * 2 = 58 =>假)...
import java.util.*;
public class EvenOrOdd{
public static void main( String [] args){
Scanner scan=new Scanner(System.in);
boolean result=true;
List<Integer> EvenNums = new ArrayList<Integer>();
List<Integer> OddNums = new ArrayList<Integer>();
for(int i=0; i<5; i++){
System.out.println("Enter a number: ");
int x=scan.nextInt();
if(x==(x/2)*2){
result=true;
System.out.println(result);
EvenNums.add(x);
continue;
}else if(x!=(x/2)*2){
result=false;
System.out.println(result);
OddNums.add(x);
continue;
}
}
System.out.println("Done");
System.out.println("Even numbers are: " + EvenNums);
System.out.println("Odd numbers are: " + OddNums);
}
}