2016-07-02 36 views
11

ho incontrato una dichiarazione in JavaValore di ritorno di operazione di assegnazione in Java

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

Come le operazioni di assegnazione Valore di ritorno in Java? Poiché la dichiarazione che stiamo verificando è line=reader.readLine() e la confronta con null. Perché readLine restituirà la stringa, come esattamente stiamo verificando per null?

risposta

20

L'operatore di assegnazione in Java restituisce il valore assegnato (come avviene, ad esempio, in ). Quindi, verrà eseguito readLine() ed è il valore di ritorno memorizzato in line. Tale valore viene quindi verificato rispetto a null e, se è null, il ciclo termina.

4

(linea = reader.readLine())! = Null

significa

  1. il metodo readLine() viene invocato.
  2. il risultato è assegnato alla variabile linea,
  3. il nuovo valore di linea sarà a prova di nullo

forse molte operazioni in una volta ...

4

espressioni di assegnamento sono valutati al loro valore di assegnazione.

(test = read.readLine()) 

>>

(test = <<return value>>) 

>>

<<return value>> 
+0

la mia domanda è fare le espressioni restituiscono anche qualcosa come secondo voi in quel momento (riga = null), vorrà dire che restituirà nuovamente null? – sunder

+0

@sunder Ho modificato la mia risposta per rispondere alla domanda sulla valutazione delle espressioni di assegnazione. –

0

reader.readLine() legge e restituisce una linea per te. Qui, hai assegnato qualsiasi cosa restituito da quello alla linea e controlla se la variabile di riga è nullo o no.