我正在创建一个程序,将确定和打印数字奇数,偶数和零在一个整数从键盘。我尝试了几种不同的方法,每种方法都得到了相同的结果。我无法让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!");
}
尚未将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++;
}
问题内容: 我该如何忽略和制造? 问题答案: 分母之前检查分母是否为零。这样可以避免捕获异常的开销,如果您希望将其除以零,则可能会更有效率。
有人知道是什么导致了这个问题吗?或者我该如何纠正这个问题?
问题内容: 一些有趣的发现wrt等于0和0.0上的运算符 返回false,而返回true。 返回false,而返回true。 看起来在两种情况下都完成了字符串比较。谁能对此有所启发。 谢谢。 问题答案: BigDecimal“等于”比较值和小数位数。如果只想比较值(0 == 0.0),则应使用compareTo: 参见javadoc。 至于Double比较,如其他答案所述,您正在将Double与I
问题内容: 我有一个包含许多字段的结构-我已经弄清楚了如何使用反射来提取字段名称,值和标签信息。我还想确定一个字段的值是否不同于该字段的默认值。 目前,我有这个(有效,但有点臭): 在我看来,在这种情况下应该有一种避免类型切换的方法-我正在尝试做的是建立一个字段/值映射,其值不同于默认的零值,例如: 是否有一种优雅的方式来实现这一目标? 谢谢! 问题答案: 对于支持相等操作的类型,您可以只比较包含
问题内容: 给我数组数据的二进制String表示形式。 但是,我想要一种添加前导零的简单方法,因为等于零的字节数组为我提供了“ 0”字符串。 我想要这样的一线客: 是正确的方法吗?如果是,我应该使用什么字符串?提前致谢! 编辑:数组是动态长度,因此前导零的数目也应如此。 问题答案: 对于使用5个前导零填充,这将起作用: 您没有指定字符串的预期长度,在上面我使用5的示例代码中,将其替换为适当的值。
问题内容: 我在ColdFusion代码中碰巧遇到了这些值,但Google计算器似乎有相同的“错误”,但差不为零。 416582.2850-411476.8100-5105.475 = -2.36468622461E-011 http://www.google.com/search?hl=zh_CN&rlz=1C1GGLS_enUS340US340&q=416582.2850+-+411476.8