Fibonacci com duas variáveis

7 respostas
andrepm

Estou realizando os exercícios da apostila da caelum, e dentre eles tentei fazer o exercício pra exibir a série fibonacci utilizando só duas variáveis. Depois de queimar a mufa um pouco, busquei a seguinte solução na internet:

int a = 1; 
    for (int i = 0; i <= 100;) {

        System.out.print(i + " ");

        i = i + a;  
        a = i - a;

Debugando, reparei que a linha 2 não é executada após a primeira passagem. Gostaria de entender o pq disso. Alguém poderia me dar uma luz por favor?

7 Respostas

A

Tá faltando código não tem? a princípio este código irá executar infinitamente.

michetti

for(int i = 0; i < a; i < 100)

Isto é somente um exemplo de como usar o for. Agora é so pensar em como você montará o seu.

B

O motivo exato não sei dizer, mas o fato de não ter nenhum incremento dentro do for, é o inicio do pq debugando ele não passa mais pelo for após a primeira iteração.

andrepm
class MeuPrograma {
	
 public static void main(String[] args) {

int a = 1; 
	for (int i = 0; i <= 100;) {
		 
		System.out.print(i + " ");
		
		i = i + a;  
		a = i - a; 
		
	}
		
  }
				
}

Esse é o código completo.

Então se eu não informar o incremento no for, a estrutura vai ser executada apenas uma vez?

B

não. Ele vai executar o for normalmente enquanto i for <= 100

andrepm

Desculpa, então não entendi. O I vai continuar sendo <= 100 após a primeira execução. Não vejo pq ele não continua sendo executado.

B

o valor de 'i' esta sendo incrementado dentro do for

class MeuPrograma {  
          
    public static void main(String[] args) {  
      
    int a = 1;   
        for (int i = 0; i <= 100;) {  
               
            System.out.print(i + " ");  
              
            i = i + a;  // i incrementado
            a = i - a;   
              
        }  
              
      }  
                      
    }
Criado 7 de março de 2014
Ultima resposta 10 de mar. de 2014
Respostas 7
Participantes 4