Fala galera du rock, firmeza???
Então pessoal, nos meus primeiros exercícios de Java apareceu uma coisa que está me deixando meio maluco, é esse lance da regra de avaliação dos operadores aritméticos em Java.
No livro fala assim:
Operador * / %, Avaliado primeiro, Se houver vários operadores desse tipo, eles são avaliados da esquerda para a direita.
Operador + -, Avaliado em seguida, Se houver vários operadores desse tipo, eles são avaliados da esquerda para direita.
Exemplo:
z = p * r % q + w / x - y;
1 2 4 3 5
Bom, eu entendi que o Java faz os operadores de * / % primeiro para depois fazer os operadores de + -.
Aí vem um exercício assim:
Declare a ordem de avaliação dos operadores em cada uma das seguintes instruções Java e mostre o valor de x depois que cada instrução é realizada:
* a) x = 7 + 3 * 6 / 2 - 1;
* b) x = 2 % 2 + 2 * 2 - 2 / 2;
* c) x = (3 * 9 * (3 + (9 * 3 / (3))));
[b]
A a), eu respondi assim:
x = ((7 + (3 * 6)) / (2 - 1)); x = 25.
b) eu respondi assim:
x = ((2 % ((2 + (2 * 2)) - 2)) / 2); x = 1.
c) eu respondi assim:
x = (((3 * 9 * 3) + (9 * 3)) / 3); x = 36.
[/b]
Agora eu fiquei em duvida por que geralmente a gente faz o divisão por ultimo né(foi o que eu fiz nas respostas), só que pela regrinha que tá no livro, o divisão é feita antes da adição e subtração, no caso a a) ficaria assim:
x = ((7 + ((3 * 6) / 2)) - 1); x = 15.
3 1 2 4
a b) ficaria assim:
x = (((2 % 2) + (2 * 2)) - (2 / 2)); x = 3.
2 4 1 5 3
e a c) ficaria assim:
x = ((3 * 9 * 3) + ((9 * 3) / 3)); x = 90.
1 2 5 3 4
Então galera, isso tá me matando, eu sempre faço primeiro a multiplicação , segundo adição e subtração e por ultimo a divisão.
To meio confuso quanto a isso, qual é o correto pra éssas questões???