为什么 Java 中的布尔值只接受 true 或 false?为什么不是1或0呢?
Java布尔值只带或为什么不拿,或者也有什么原因吗?true
false
1
0
Java布尔值只带或为什么不拿,或者也有什么原因吗?true
false
1
0
Java与C和C++等语言不同,它被视为一种完全独立的数据类型,具有2个不同的值:true和false。值 1 和 0 是 int 类型,不能隐式转换为 。boolean
boolean
因为布尔值有两个值:或 .请注意,这些不是字符串,而是实际的布尔文本。true
false
1 和 0 是整数,没有理由通过使它们成为“替代真”和“替代假”来混淆事物(或者对于那些习惯于 Unix 退出代码的人来说,反之亦然?)。在 Java 中使用强类型,应该只有两个原始布尔值。
编辑:请注意,如果您愿意,您可以轻松编写转换函数:
public static boolean intToBool(int input)
{
if (input < 0 || input > 1)
{
throw new IllegalArgumentException("input must be 0 or 1");
}
// Note we designate 1 as true and 0 as false though some may disagree
return input == 1;
}
虽然我不推荐这个。请注意,您不能保证变量确实是0或1;并且没有100%明显的语义来表示正确。另一方面,变量总是要么是,要么,很明显哪一个意味着真。:-)int
boolean
true
false
因此,不要使用转换函数,而要习惯于对表示真/假概念的所有内容使用变量。如果您必须使用某种原始文本字符串(例如,用于存储在平面文件中),则“true”和“false”的含义要清晰得多,并且可以通过库方法Boolean.valueOf立即转换为布尔值。boolean