我正在创建一个程序,用于确定并打印键盘中整数的奇数,偶数和零数字。我尝试了几种不同的方法,并且每种方法都得到了相同的结果。我不能让java将0识别为0,但仅作为偶数。防爆。 1005将给出2个赔率和2个犯罪。
public static void main(String[] args) {
int odd = 0;
int even = 0;
int zero = 0;
int input;
Scanner scan = new Scanner (System.in);
System.out.println("Input an integer please: ");
input = scan.nextInt();
System.out.println("Your number is: " + input);
String x = Integer.toString(input);
for (input = 0; input < x.length(); input++){
char a = x.charAt(input);
System.out.println(a);
Character.getNumericValue(a);
if (a==0){
System.out.println ("+1 Zero");
zero++;
}
else if (a%2 == 0 && a>1){
System.out.println("+1 Even");
even++;
}
else {
System.out.println("+1 Odd");
odd++;
}
}
System.out.println("There are " + odd + " odd numbers!");
System.out.println("There are " + even + " even numbers!");
System.out.println("There are " + zero + " zero numbers!");
}
答案 0 :(得分:1)
您尚未将Character.getNumericValue(a)指定给int值。
char a = x.charAt(input);
System.out.println(a);
int y= Character.getNumericValue(a);
if (y==0){
System.out.println ("+1 Zero");
zero++;
}
else if (y%2 == 0 && y>1){
System.out.println("+1 Even");
even++;
}
else {
System.out.println("+1 Odd");
odd++;
}
答案 1 :(得分:0)
Character.getNumericValue(a);方法返回int
。它不会隐式更改参数(在这种情况下,字符变量&#39; a&#39;)。
因此,您应该比较getNumericValue方法的返回值而不是原始字符。