package test;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner num = new Scanner(System.in);
int n = num.nextInt();
switch(n % 2) {
case 0:
System.out.println("偶数");
break;
case 1:
System.out.println("奇数");
break;
}
}
}
乍一看代码没有任何问题,但是运行时就发现了错误。
当输入负奇数时,不输出结果,这是因为取余运算符只会对负数直接取余,而不是先转码。
解决方法:使用&运算符:
package test;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner num = new Scanner(System.in);
int n = num.nextInt();
switch(n & 1) {
case 0:
System.out.println("偶数");
break;
case 1:
System.out.println("奇数");
break;
}
}
}
执行结果: