public class Test {
public static void main(String[] args) {
// 接收键盘输入参数
Scanner input = new Scanner(System.in);
System.out.println("请输入多个数字判断奇偶:");
while (input.hasNextInt()) {
int i = input.nextInt();
String str = i + "->" + (i%2 == 0 ?"偶数" :"奇数");
System.out.println(str);
}
}
}
输入正数还行,接着输入负数,都判断为偶数
我们先来了解一下Java中取余的算法,模拟代码如下:
// 模拟取余计算,dividend被除数,divisor除数
public static int remainder(int dividend,int divisor) {
return dividend - dividend / divisor * divisor;
}
根据上面的模拟取余可知,当输入-1的时候,运算结果是-1,当然不等于1了,所以它就被判定为偶数了,也就是说是我们的判断失误了。问题明白了,修正也很简单,改为判断是否是偶数即可,代码如下:
i%2 == 0 ? "偶数" :"奇数"
public static void main(String[] args) {
// 接收键盘输入参数
Scanner input = new Scanner(System.in);
System.out.println("请输入多个数字判断奇偶:");
while (input.hasNextInt()) {
int i = input.nextInt();
String str = i + "->" + (i%2 == 0 ?"偶数" :"奇数");
System.out.println(str);
}
}
}
输入正数还行,接着输入负数,都判断为偶数
我们先来了解一下Java中取余的算法,模拟代码如下:
// 模拟取余计算,dividend被除数,divisor除数
public static int remainder(int dividend,int divisor) {
return dividend - dividend / divisor * divisor;
}
根据上面的模拟取余可知,当输入-1的时候,运算结果是-1,当然不等于1了,所以它就被判定为偶数了,也就是说是我们的判断失误了。问题明白了,修正也很简单,改为判断是否是偶数即可,代码如下:
i%2 == 0 ? "偶数" :"奇数"