繁体   English   中英

这行在Java中意味着什么:boolean retry = id == 1;

[英]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);

retrytrue ,如果id的值为1,否则retryfalse

它是一样的

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

这是一种定义布尔变量的方法。

id1retry值将为true

retry指定一个表达式,该表达式将为true或false,因为retry是一个boolean 此外, ==将首先解决,然后将分配retry

如果你这样看,它可能更容易看到发生了什么:

boolean retry = (id == 1);

所以基本上它检查id是否等于1,然后将结果分配给变量retry。

它与retry = (id == 1)基本相同。 它正在评估布尔表达式,并将其指定为retry

布尔变量retry将获得值01具体取决于表达式id==1返回true还是false

如果id值为1 ,则id==1将对应于true ,因此retry=1

如果id值为0 ,则id==1将对应于false ,因此retry=0

请注意, ==是一个比较运算符。

代码可以像这样编写,然后很容易理解,你这么认为吗? 最后,感谢您给我机会回答这个问题!

boolean retry = (id == 1);

我将基于id为int的假设进行响应,因此与1的比较是正确的,并且编译错误不到位。 ==是java中的等于运算符,如JLS的第15.21.1节所述。 作为布尔运算符,==将输出一个布尔值。 =是java的赋值运算符,在这种特殊情况下,它是具有以下语法的复合赋值运算符

布尔值f =(op1 op op2)

在translation =中,将(op1 op op2)操作的输出值分配给左操作数,在本例中为f

回顾一下您的示例, id == 1的输出(如果id的值为1则为true,否则为false)将被指定为重试

用简单的英语结束,您的示例具有以下含义: 只要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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM