Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Toda conta devolve no mínimo um int. Para literais, não. Por quê?

Compila e roda normalmente:

byte c2 = 65 * 1;

Já esse não compila:

byte b1 = 5;
byte b2 = 3;
byte b3 = b1 + b2;

Por que isso corre?

2 respostas
solução!

Oi Erick,

Parte do código compila porque 65 é um valor que cabe num byte.. Você ta fazendo uma operação entre 2 valores final e é garantido que o resultado cabe.

Já na segunda parte você poderia ter um byte com 70 e outro com 70, que já ia estourar o valor, por isso que ele não deixa compilar. Nesse mesmo exemplo, se vc colocar final no b1 e b2, vai compilar.. Pq aí ele já resolve os valores na compilação.

Muito obrigado, Alberto. Ficou bem claro. Então só precisa garantir para o compilador que os valores irão caber na variável declarada. Valeu.