【发布时间】:2014-09-26 10:33:41
【问题描述】:
java 中的布尔基元本身是一种类型还是可以作为 int 操作?在我见过的其他语言中,布尔类型可以像 false=0 和 true=1 一样进行操作,这有时非常方便。
【问题讨论】:
java 中的布尔基元本身是一种类型还是可以作为 int 操作?在我见过的其他语言中,布尔类型可以像 false=0 和 true=1 一样进行操作,这有时非常方便。
【问题讨论】:
Java 中的布尔原语本身就是一种类型吗?
是的。 boolean 本身就是一个原始类型
可以将其作为 int 操作吗?
没有。它不能被隐式或显式强制转换或以其他方式用作int(Java 不是 C)
如果您想将其“强制”为 int:
boolean b;
int i = b ? 1 : 0; // or whatever int values you care to use for true/false
【讨论】:
int myInt = (b) ? 1 : 0; 和 boolean myBool = (myInt != 0);
int myInt = b ? 1 : 0 和boolean myBool = myInt != 0;。为什么myInt?
不,你不能在 Java 中做到这一点。在 Java 中,布尔值 true 和 false 不是整数,也不会自动转换为整数。 (事实上,从 boolean 类型到 int 类型的显式类型转换甚至是不合法的,反之亦然。
boolean 只接受 true 或 false。
布尔转 int
int i = myBoolean ? 1 : 0;
整数到布尔值
boolean b = (myInt == 1 ? true : false);
【讨论】:
boolean b = (myInt !=0) ? true : false;。原因是“0”总是“假”,但“1”并不是唯一可以表示“真”的整数。
不,在 Java 中,您不能将“int”视为布尔值,也不能将“int”转换为布尔值。
如果您需要将整数评估为真/假,则代码很简单。例如:
boolean isTrue = (i != 0);
【讨论】: