java 如何将 int 转换为 boolean
How java converts int to boolean
当我转换时:
int B=1;
boolean A=B;
它给出错误:不兼容的类型,这是真的
但是当我写这段代码时:
int C=0;
boolean A=C==1;
它给出错误
而如果我将 C 的值更改为 1,它会给出 true。
我不明白编译器是怎么做到的。
C==1
是一个结果为 boolean
的表达式(它是比较运算符)。它 returns true
如果 C
等于 1 并且 false
否则。
因此 boolean A=C==1;
是 boolean
值到 boolean
变量的有效赋值。
它首先检查 c==1
,然后将结果分配给 A
。
因为 C
不是 1,所以表达式值导致 false 分配给 A
int C=0;
boolean A=C==1;
编译器首先给C一个零。
Variable : C
Value : 0
现在赋值语句,
我们知道赋值语句先计算右边的部分然后把它赋值给左边。
右边部分==> C == 1
这里,这是一个计算结果为 true
或 false
的表达式。在这种情况下,它是错误的,因为 c is 0.
所以 R.H.S 是错误的。
现在这被分配给 L.H.S 即 A.
A = ( C == 1 ) ==> A = false
因为 A
是一个布尔值,所以这是一个正确的陈述
当我转换时:
int B=1;
boolean A=B;
它给出错误:不兼容的类型,这是真的
但是当我写这段代码时:
int C=0;
boolean A=C==1;
它给出错误 而如果我将 C 的值更改为 1,它会给出 true。 我不明白编译器是怎么做到的。
C==1
是一个结果为 boolean
的表达式(它是比较运算符)。它 returns true
如果 C
等于 1 并且 false
否则。
因此 boolean A=C==1;
是 boolean
值到 boolean
变量的有效赋值。
它首先检查 c==1
,然后将结果分配给 A
。
因为 C
不是 1,所以表达式值导致 false 分配给 A
int C=0;
boolean A=C==1;
编译器首先给C一个零。
Variable : C
Value : 0
现在赋值语句,
我们知道赋值语句先计算右边的部分然后把它赋值给左边。
右边部分==> C == 1
这里,这是一个计算结果为 true
或 false
的表达式。在这种情况下,它是错误的,因为 c is 0.
所以 R.H.S 是错误的。
现在这被分配给 L.H.S 即 A.
A = ( C == 1 ) ==> A = false
因为 A
是一个布尔值,所以这是一个正确的陈述