Operatore +
Con l’operatore + bisogna fare attenzione perché funziona in modo diverso a seconda di quali operandi lo utilizzano. Se sono due numeri effettua una somma altrimenti una concatenazione. Esempio :
public class main {
public static void main(String[] args) {
int i = 0;
i = 15;
System.out.println(i);
System.out.println(i + 5);
System.out.println(i + " pippo");
System.out.println(i + 5 + " pippo");
System.out.println("pippo " + 5 + i);
}
}
Risultato:
15
20
15 pippo
20 pippo
pippo 515
Il secondo print stampa la somma numerica tra 15 e 5 e quindi 20, mentre il terzo stampa la concatenazione tra la stringa 15 e la stringa pippo.
Il 4° e il 5° sono interessanti perché possono sembrare simili ma danno risultati completamente diversi. Infatti nel 4° prima si fa una somma numerica e dopo una concatenazione, mentre nel 5° dopo la prima concatenazione si fa un’altra concatenazione. La spiegazione è che dopo la prima concatenazione abbiamo una stringa : "pippo " + 5 + i= "pippo 5" + i = "pippo 515"
Inoltre si veda la precedenza tra operatori : prima il * e dopo la somma :
3*2 + 4 + 5 = (3*2) + 4 + 5 = 6 + 4 + 5 = 15
Domande d'esame
Le domande di esame vogliono mettere in evidenza il meccanismo della concatenazione con i diversi tipi (numeri o stringhe) e le diverse precedenze. Ad esempio :
public class main {
public static void main(String[] args) {
System.out.println("Result: "+3+5);
System.out.println("Result: "+(3+5));
}
}
Nessun commento:
Posta un commento