static public void main(String...arg)
{
int i=1;
int result = 5+i++%4*i;
System.out.println(result);
}
alguem pode me explicar o pq isto retorna 7?
static public void main(String...arg)
{
int i=1;
int result = 5+i++%4*i;
System.out.println(result);
}
alguem pode me explicar o pq isto retorna 7?
static public void main(String...arg) { int i=1; int result = 5+i++%4*i; System.out.println(result); }alguem pode me explicar o pq isto retorna 7?
i % 4 = 1
i++
1 * 2 = 2
5 + 2 = 7
Ou seja:
temp = i % 4;
i++;
result = 5 + (temp * i)
Bom, pelo o que eu pude entender ele calcula primeiro a expressão do mod i++%4 retornando o valor de 2
em seguida ele soma +5 e multiplica por 1
Ok!
cara nao cai questões assim na prova… isso é bom pra entender como funciona os operadores aritimético… mas a não cai na prova questões em cima de operadores assim… tipo somando aqui, dividindo ali, mutiplicando ali pra saber o resultado final…
Na verdade caia na SCJP 1.4. Na SCJP 5 tiraram os objetivos relativos a estas questões para dar espaço para outros objetivos.
E Porque assim:
public static void main(String ... args){
int i=1;
int result = 5+(++i%4)*i;
System.out.println(result);
}
Dá 9 como resultado?
E Porque assim:public static void main(String ... args){ int i=1; int result = 5+(++i%4)*i; System.out.println(result); }Dá 9 como resultado?
Porque ++i e i++ são coisas diferentes.
Aí ele vai fazer:
++i // i = 2
i%4 // 2
2*i // 4
5+4 // 9
Valeu!