在Java中,赋值表达式会评估为什么?

52

我在Java中遇到了一个语句

while ((line = reader.readLine()) != null) {
    out.append(line);
}

Java 中的赋值操作符如何返回一个值?

我们要检查的语句是 line = reader.readLine(),并将其与 null 进行比较。

readLine 方法会返回一个字符串,那么我们如何检查是否为 null 呢?

5个回答

64
Java中的赋值运算符会将赋值的值进行评估(就像在中一样)。因此,在这里,readLine()将被执行,并且它的返回值将被存储在line中。然后检查存储的值是否为null,如果是,则循环将终止。

11

(line = reader.readLine()) != null

意思是:

  1. 调用了readLine()方法。
  2. 将结果分配给变量line
  3. line的新值将不会为null

可能同时进行多个操作...

请注意保留原始HTML标记。

9

赋值表达式会被求值为它们的赋值结果。

(test = read.readLine())

>>

(test = <<return value>>)

>>

<<return value>>

我的问题是,表达式是否也会根据您的说法返回某些内容,例如在(line=null)的情况下,这是否意味着它将再次返回null? - sunder
@sunder 我已经编辑了我的答案,以回答你关于赋值表达式求值的问题。 - srage

8

0

reader.readLine() 会读取并返回一行内容。在这里,你将返回的内容赋值给了变量 line,并检查 line 变量是否为 null。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接