quinta-feira, 21 de julho de 2016

Operações numéricas nas concatenações entre Strings e numeros

Em java, qual a diferença no que seria impresso em cada um dos seguintes exemplos:

1) System.out.println("são " + 20 + 20 + 6);

2) System.out.println("são " + (20 + 20 + 6) );

?

Sim, existe diferença. 
Ao começar a fazer a concatenação de uma string, a operação de concatenação é feita até o final. Se for concatenada uma string com um número, esse número deixará de ser visto como um valor numérico e passará a ser visto como String. Assim também se dará com qualquer número que apareça no restante daquela concateação. Assim, se existem núemros com os quais se deseja trabalhar realmente como sendo números, é preciso fazer tais operações antes de fazer uma concatenação desejada com alguma String. Pode-se utilizar de parênteses para definir essa precedência nas operações.

No primeiro exemplo, ao colocar "são"+20 , isso já geraria um início de concatenação, por estar colocando uma string na soma. Logo, a partir daí, ia ir concatenando tudo até o final.
A saída de 1) seria: 20206

No segundo caso, um parênteses é colocado mudando a precedência: a primeira coisa a ser lida é 20+20+6. Apenas números, então serão realmente somados. Depois, seguindo a precedência, vai ser feito o "são "+ 46. 
A saída de 2) seria:46

Nenhum comentário:

Postar um comentário