Duvida simples

9 respostas
Jorgeweb
public int operacao(int n) {

int a, b, c, d;

c  = 0;

b = 1;

a = 1;

while (a < n) {

d = b +  c;

c = b;

b = d;

a = a + 1;

}

return b;

}

Se eu colocar 5 no lugar de n, o valor retornado será 8?Será que estou errado!

9 Respostas

E

Crie uma classe e rode esse método. É mais rápido que esperar a resposta aqui.

thokk

Sim está o valor do b no return é 5.
Pois vc interage apenas até o a = 4, quando ele é 5 ele saí do while.
Faça o debug na mão mesmo, usando chinesinho.

Jorgeweb

obrigado! sou iniciante e aqui nesse computador não tem o programa adequado!

A
fui um teste veja só:
public class Teste {
	public int operacao() {
		int a, b, c, d;
		c = 0;
		b = 1;
		a = 1;
		while (a < 5) {
			d = b + c;//1
			c = b;//1
			b = d;
			a = a + 1;
			
		}
		return b;
	}

	public static void main(String[] args) {
		System.out.println(new Teste().operacao());
	}
}

imprimiu 5

A

Aliás… Adorei a pergunta… :smiley:

thokk

Explicação simples, o a<n vai iterar até o valor menor que 5. Pois n = 5.

Jorgeweb

eu tentei fazer na caneta com o n = 9 e deu 32!!

D

axo q vc errou no calculo…para n=9, o resultado de b é 34…

  • a idéia é essa… ele roda até que a seja menor que 9.
    ou seja a ultima vez q ele entra no while é com a==8…
    vlw
Gemini

Geralmente nesses while o pessoal começa com o a=0, que ai ele roda o laço n vezes, ao invez de n-1 vezes
:b

Criado 24 de junho de 2010
Ultima resposta 26 de jun. de 2010
Respostas 9
Participantes 6