Exercício sobre operadores

# What gets printed when the following program is compiled and run. Select the one correct answer.


class test {
	public static void main(String args[]) {
		int i,j,k,l=0;
		k = l++;
		j = ++k;
		i = j++;
		System.out.println(i);		
	}
}

   a. 0
   b. 1
   c. 2
   d. 3 

Porque a resposte é 1, isto é, letra b?

o valor de l é atribuído a k (l=0) que so depois da atribuição é incrementado em 1 unidade.
[code]j = ++k;[/code]
é incrementado 1 unidade a k (k=1) e esse valor é atribuído a j
[code]i = j++;[/code]
o valor de j é atribuído a i (j=1) que so depois da atribuição é incrementado em 1 unidade.
[code]System.out.println(i);[/code] 
Imprime 1

o valor de l é atribuído a k (l=0) que so depois da atribuição é incrementado em 1 unidade.

é incrementado 1 unidade a k (k=1) e esse valor é atribuído a j

o valor de j é atribuído a i (j=1) que so depois da atribuição é incrementado em 1 unidade.

Imprime 1

i++ entrega o valor e soma à variável i
++i soma à variável i e entrega o valor…

a diferença está no posicionamento do operador ++ (ou --) :cool:

muito bom saber isso

vlw cara

Dica muito interessante