Operatori precedenti in java (unario plus e addizione) [chiuso]

-3

Ho difficoltà a capire perché l'output di queste due righe è diverso ...

public static void main(String[] args) {
   System.out.println("6.0+1="+6.0+1);
   System.out.println("6.0+1="+(6.0+1));
}

L'output
6.0 + 1 = 6.01
6.0 + 1 = 7.0

    
posta lulu 08.10.2016 - 16:00
fonte

2 risposte

1

Il tuo esempio non usa plus unario.

Lo usi per la concatenazione di stringhe e per l'aggiunta.

"6.0+1="+6.0+1 sarà valutato nei tipi come stringa + numero + numero . Quindi, prima "6.0+1" + 6.0 utilizzerà + come operatore di concatenazione delle stringhe, risultante in una nuova stringa: "6.0+1=6.0" . Quindi accade lo stesso con + 1 alla fine, risultante in un'altra concatenazione di stringhe.

"6.0+1="+(6.0+1) wil per prima cosa valuta la parte (...) , in cui aggiungi due numeri, quindi il risultato sarà 7.0 (virgola mobile + intero = > virgola mobile). Quindi avviene la concatenazione della stringa come nella prima variazione.

Gli operatori unari lavorerebbero su una singola variabile / costante / espressione, cioè l'operatore meno unario come in x = -1 .

    
risposta data 08.10.2016 - 17:03
fonte
-1

Le risposte sarebbero sicuramente diverse a causa dell'uso di Bracket nella seconda operazione, l'operazione sarebbe prima avviata da parentesi ad altri operatori.

    
risposta data 08.10.2016 - 19:23
fonte

Leggi altre domande sui tag