Is there any advantage/ is it a bad practice to do the below
x= x = 5
Non hai specificato la lingua, ma nella maggior parte delle lingue simili a C il valore di un'assegnazione è il valore assegnato. Cioè, il valore dell'espressione x = 5
è 5
, e l'espressione che stai chiedendo è essenzialmente la stessa di fare:
x = 5;
x = 5;
Non c'è alcun valore nell'assegnazione extra, quindi non c'è motivo di farlo.
Ora, quello che a volte vedi è l'assegnazione di due (o più) variabili ad un certo valore allo stesso tempo, in questo modo:
x = y = 5;
In questo caso, assegni da 5 a y
, quindi assegna il valore di tale espressione (ancora, 5) a x
. Ciò garantisce che sia x
che y
abbiano lo stesso valore.
Un'altra possibilità è che uno dei compiti era destinato a essere un confronto, con il risultato assegnato alla variabile da confrontare:
x = x == 5;
Questo non è un doppio incarico, è l'assegnazione dell'espressione booleana x == 5
a x
. Cioè, se il valore di x
è 5 prima dell'espressione, x
otterrà il valore di true
(un numero intero diverso da zero); se x
non è 5, x
sarà impostato su false
(cioè 0).