Estou com uma dúvida sobre pré-incremento (me ajudem)

1 resposta
camillabrasilia

Estou com algumas dúvidas sobre pós-incremento e pré-incremento.

suponde que:
int a=1;

  1. a=a++; a resposta será 1

  2. a=++a; a resposta será 2

  3. a=a++ +a; resposta será 3

  4. a=++a +a; resposta será 4

  5. for(a=1; a<2; ++a) resposta será 1

  6. for(a=1; a<2; a++) resposta será 1

Dúvidas:

  • Como funciona o pré-incremento (++i) e o pós-incremento(i++) seguindo os exemplos acima.

  • No exemplos 1) a variável “a” recebe 1 depois incrementa (++), o incremento (adiciona mais 1). Portanto no exemplo 1) como no exemplo 2) a resposta não teria que ser “2”.

  • Comente os exemplos: 3) e 4)

  • Comente os exemplos: 5) e 6) - Por que independente da posição do incremento as respostas são as mesmas?

1 Resposta

douglasfs

“camillabrasilia”:
Estou com algumas dúvidas sobre pós-incremento e pré-incremento.

suponde que:
int a=1;

  1. a=a++; a resposta será 1

  2. a=++a; a resposta será 2

  3. a=a++ +a; resposta será 3

  4. a=++a +a; resposta será 4

  5. for(a=1; a<2; ++a) resposta será 1

  6. for(a=1; a<2; a++) resposta será 1

Dúvidas:

  • Como funciona o pré-incremento (++i) e o pós-incremento(i++) seguindo os exemplos acima.

a=a++ seria a mesma coisa que :
a=1 // atribui o numero 1 a variavel “a” (valor inicial 1)
a=a+1 // para depois incrementar a variável “a” (pós incremento)

a=++a seria a mesma coisa que :
a = a + 1 // agora que ele incrementa o valor de “a” (pré-incremento)
a = 2 // para depois ele atribuir o resultado a “a”

Não, talvez você ache meio complicado vendo a variável aparecer sozinha, para “clarear” faça esse teste:

/*
 * Created on 14/05/2003
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author Douglas
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class Incremento {

	public static void main(String[] args) {
		int a=1;
		int b=1;
		System.out.println("Valor de a: " + a++);
		System.out.println("Valor de b: " + ++b);
	}
}

No 3 (a=a++ +a)
Fica asssim
a=a (a vale 1)
+a (a vale 1)
a = 1 + 1 = 2
a++ // agora que ele incrementa o “a” (pós incremento), agora vale 3

No 4 (a=++a +a)
Fica assim
a=a+1 (pré incremento, agora “a” vale 2)
+a = 2 (pois o “a” já foi pré-incrementado)
Poranto o resultado eh 4

  • Comente os exemplos: 5) e 6) - Por que independente da posição do incremento as respostas são as mesmas?
Porque ele o a aparece sózinho, se você tiver uma linha assim

Trecho 1

a=1;

a++;

System.out.println(a);
Trecho 2

a=1;

++a;

System.out.println(a);

O resultado é o meso, o pré-incremento e o pós-incremento, só faz diferença se for utilizado numa expressão, se eles aparecem sózinho (como no loop for) é a mesma coisa.

Espero que tenha lhe ajudado[/code]

Criado 14 de maio de 2003
Ultima resposta 14 de mai. de 2003
Respostas 1
Participantes 2