Возвращаемое значение операции присваивания в Java

Я столкнулся с утверждением на Java

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

Как операции присваивания возвращают значение в Java?

Утверждение, которое мы проверяем, - line = reader.readLine(), и мы сравниваем его с null.

Так как readLine вернет строку, как именно мы проверяем null?

Ответ 1

Оператор присваивания в Java возвращает назначенное значение (как, например, в ). Таким образом, readLine() будет выполнен, и он вернет значение, сохраненное в line. Затем это значение проверяется на значение null, а если оно равно null, цикл завершается.

Ответ 2

Выражения присваивания оцениваются по их значению присваивания.

(test = read.readLine())

>>

(test = <<return value>>)

>>

<<return value>>

Ответ 3

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

означает

  1. вызывается метод readLine().
  2. результат присваивается переменной строке,
  3. новое значение строки будет доказательством против null

возможно, сразу несколько операций...

Ответ 4

reader.readLine() читает и возвращает строку для вас. Здесь вы назначили все, что возвращалось из этой строки, и проверяете, является ли строка переменной нулевой или нет.