【问题标题】:Can I manipulate Boolean values as ints in Java? [duplicate]我可以在 Java 中将布尔值作为整数操作吗? [复制]
【发布时间】:2014-09-26 10:33:41
【问题描述】:

java 中的布尔基元本身是一种类型还是可以作为 int 操作?在我见过的其他语言中,布尔类型可以像 false=0 和 true=1 一样进行操作,这有时非常方便。

【问题讨论】:

标签: java boolean


【解决方案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);
  • @FoggyDay 为什么都是括号?为什么不只是int myInt = b ? 1 : 0boolean myBool = myInt != 0;。为什么myInt
【解决方案2】:

不,你不能在 Java 中做到这一点。在 Java 中,布尔值 true 和 false 不是整数,也不会自动转换为整数。 (事实上​​,从 boolean 类型到 int 类型的显式类型转换甚至是不合法的,反之亦然。

boolean 只接受 truefalse

布尔转 int

int i = myBoolean ? 1 : 0;

整数到布尔值

boolean b = (myInt == 1 ? true : false);

【讨论】:

  • 更一般(更“正确”):boolean b = (myInt !=0) ? true : false;。原因是“0”总是“假”,但“1”并不是唯一可以表示“真”的整数。
  • 这实际上取决于实现。该问题特别提到了 false=0 和 true=1,通常在处理布尔值时用作标志。
【解决方案3】:

不,在 Java 中,您不能将“int”视为布尔值,也不能将“int”转换为布尔值。

如果您需要将整数评估为真/假,则代码很简单。例如:

  boolean isTrue = (i != 0);

【讨论】:

  • 比这更简单——你可以省略括号
猜你喜欢
  • 1970-01-01
  • 2011-03-11
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 2014-08-13
  • 2021-09-07
相关资源
最近更新 更多