Java 中赋值表达式的计算结果是啥?
Posted
技术标签:
【中文标题】Java 中赋值表达式的计算结果是啥?【英文标题】:What does an assignment expression evaluate to in Java?Java 中赋值表达式的计算结果是什么? 【发布时间】:2016-11-04 23:01:32 【问题描述】:我在Java中遇到了一个语句
while ((line = reader.readLine()) != null)
out.append(line);
Java 中赋值操作如何返回值?
我们正在检查的语句是line = reader.readLine()
,我们将其与null
进行比较。
由于readLine
将返回一个字符串,我们究竟如何检查null
?
【问题讨论】:
【参考方案1】:Java 中的赋值运算符计算为分配的值(就像它在例如 c 中所做的那样)。所以这里会执行readLine()
,并将其返回值存储在line
中。然后根据null
检查存储的值,如果是null
,则循环将终止。
【讨论】:
【参考方案2】:(line = reader.readLine()) != null
表示
-
方法 readLine() 被调用。
结果赋值给变量line,
line 的新值将证明 null
可能同时进行许多操作...
【讨论】:
【参考方案3】:赋值表达式被评估为它们的赋值值。
(test = read.readLine())
>>
(test = <<return value>>)
>>
<<return value>>
【讨论】:
我的问题是表达式是否也根据您当时的情况返回某些内容(line=null),这是否意味着它会再次返回 null? @sunder 我编辑了我的答案以解决您关于赋值表达式评估的问题。【参考方案4】:The Java® Language Specification 15.26. Assignment Operators
在运行时,赋值表达式的结果是 赋值发生后的变量。
【讨论】:
【参考方案5】:reader.readLine()
为您读取并返回一行。在这里,您将返回的任何内容分配给 line 并检查 line 变量是否为空。
【讨论】:
以上是关于Java 中赋值表达式的计算结果是啥?的主要内容,如果未能解决你的问题,请参考以下文章