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 1:
The assignment operator in Java evaluates to the assigned value (like it does in, e.g., c). 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.
Solution 2:
(line = reader.readLine()) != null
means
- the method readLine() is invoked.
- the result is assigned to variable line,
- the new value of line will be proof against null
maybe many operations at once...
Solution 3:
Assignment expressions are evaluated to their assignment value.
(test = read.readLine())
>>
(test = <<return value>>)
>>
<<return value>>