Pegadinha: operador (+)

6 respostas
ricardolecheta

Qual sera o resultado ?

public class Teste
{
	static byte a;
	static short b;
	static char c = 2;
	static String s1 = "a";
	static int d;
	static long e;
	static String s2;

	public static void main(String[] args)
	{
	        System.out.println(a + b + c + s1 + d + e + s2);
	}
}

6 Respostas

luiz_ross

Eu acho que é 002a00null que imprime. Ta certo?

Frank
Eu acho que a resposta é 2a00null !!

Porque,

:arrow: byte e short não tem valor inicial;

:arrow: String tem valor inicial como null;

:arrow: int e long tem valor inicial 0

Falow.

caiofilipini

Concordo com o Frank, 2a00null.

[]'s

ricardolecheta

realmente imprime: 2a00null

:arrow: o valor default para byte e short é 0.

o que acontece é o seguinte: quando se usa o operador (+) todos sabem que ele concatena Strings, isto irá acontecer somente depois de uma String ser encontrada.
Antes de se encontrar a String, se os outros valores forem números estes serão “somados”…
não sei se expliquei bem… :oops:

vejam:

int a = 2; int b = 5; String s = "Ricardo"; System.out.println(a + b + s); // Imprime: 7Ricardo

agora voltando na pegadinha que passei…
System.out.println(a + b + c + s1 + d + e + s2);

a + b + c = 2
o resultado é a soma!, no caso a e b tinham seus valores default (zero)

a partir do momento em que a String “s1” é encontrada, o operador (+) funcionará como concatenação e o resultado será convertido para String!

P

eu tb consegui matar essa!
2a00null

P

eu tb consegui matar essa!

2a00null

Editado…
Foi mal!
Sem querer eu dupliquei a msg, naum tem a opção de deletar seu ultimo post?

Criado 12 de agosto de 2003
Ultima resposta 13 de ago. de 2003
Respostas 6
Participantes 5