Search code examples
javaexpressionfile-handlingassignment-operator

What does an assignment expression evaluate to in Java?


I encountered a statement in Java

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

How do assignment operations return a value in Java?

The statement we are checking is line = reader.readLine() and we compare it with null.

Since readLine will return a string, how exactly are we checking for null?


Solution

  • The assignment operator in Java evaluates to the assigned value (like it does in, e.g., ). So here, readLine() will be executed, and its return value stored in line. That stored value is then checked against null, and if it's null then the loop will terminate.