[英]What does this line mean in Java: boolean retry = id == 1;
我已经学习Java一段时间了,还在学习新的语法技巧和东西。 我在Android源代码中遇到过这个:
boolean retry = id == 1;
这是什么意思?
id == 1
是一个布尔表达式,如果id
等于1
则为true,否则为false。
boolean retry = id == 1;
声明一个名为retry
的布尔变量,并将布尔表达式id == 1
的值赋给此变量。
所以它声明了一个布尔变量,如果id == 1
则为true,否则为false。
为了使它更清晰,你可以这样写:
boolean retry = (id == 1);
retry
是true
,如果id
的值为1,否则retry
是false
。
它是一样的
boolean retry;
if (id == 1)
retry = true;
else
retry = false;
==
,它是等式谓词,具有比=
更高的优先级,它是赋值运算符。
因此,首先计算id == 1
,然后将其值(true或false)分配给retry
。
如果id == 1
,则布尔重试的值为true。
它与以下相同:
boolean retry;
if (id == 1) {
retry = true;
} else {
retry = false;
}
首先用1来计算id
,所以推测id
是一个integer
。
之后,为此评估分配值retry
,因此如果id
等于1,则retry
将变为true
,并且对于任何其他id
retry
值将变为false
。
此行创建一个布尔变量,如果id
等于1则将其设置为true
否则设置为false
。
它像三元运算一样, (x) ? true : false
(x) ? true : false
C,C ++,C#等中的(x) ? true : false
;
类似的语法:
boolean retry = (id == 1)? true: false;
或者它可以写另一种方式:
boolean retry;
if (id == 1) {
retry = true;
} else {
retry = false;
}
我发现只使用parens有助于消除这种复杂语句背后的混乱。
boolean retry = (id == 1);
对我来说更有意义。 这里很明显(id == 1)
是一个被评估的表达式,结果被分配给boolean retry
这是一种定义布尔变量的方法。
当id
为1
, retry
值将为true
。
retry
指定一个表达式,该表达式将为true或false,因为retry
是一个boolean
。 此外, ==
将首先解决,然后将分配retry
。
如果你这样看,它可能更容易看到发生了什么:
boolean retry = (id == 1);
所以基本上它检查id是否等于1,然后将结果分配给变量retry。
它与retry = (id == 1)
基本相同。 它正在评估布尔表达式,并将其指定为retry
。
布尔变量retry
将获得值0
或1
具体取决于表达式id==1
返回true
还是false
。
如果id
值为1
,则id==1
将对应于true
,因此retry=1
。
如果id
值为0
,则id==1
将对应于false
,因此retry=0
。
请注意, ==
是一个比较运算符。
代码可以像这样编写,然后很容易理解,你这么认为吗? 最后,感谢您给我机会回答这个问题!
boolean retry = (id == 1);
1.int id = 1;
boolean retry = id == 1;
这意味着retry = true;
。
2.int id = 2;
boolean retry = id == 1;
这意味着retry = false;
。
简化id == 1可以视为
if ( id == 1 ){
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.