Dúvidas sobre o laço For

4 respostas
B

Olá estou estudando Java por conta própria e estou com uma pulga atrás da orelha… todas as variáveis dentro de um laço “For” com incremento por exemplo elas também sofrerão com o incremento?? Fiz um código com a sequência Fibonacci com 10 termos e as variáveis num1 e num2 também sofrem incremento com o seguinte código: Isto está certo mesmo??

public class Exercicio_Fibonacci {
public static void main(String[] args) {
    int num1 = 1;
    int num2 = 0;
    int n; 
    
    for(n = 1; n <= 10; n++){
       num1 = num1 + num2;
       num2 = num1 - num2;
       
    }
    System.out.println("Sequência Fibonacci com " + n + " termos é igual a: " + num1);

4 Respostas

Sandro_Machado

Não sei se entendi sua dúvida, se ela é com incremento ela vai sofre incremento, as variáveis dentro do for só serão incrementados se você assim os quiser, no seu código você não está incrementando num1 e num2, está apenas atribuindo novos valores a partir da soma dos adjacentes. incrementação é assim i++ ou ++i.

O fato de o For ter incremento, não altera as variáveis dentro dele.

P

Como foi informado, no seu exemplo a única váriavel que está sofrendo um incremento é a n as váriaveis num1 e num2 simplismente estão sofrendo as mesmas operações 10 vezes. Ou seja o que você está fazendo é basicamente isso:

int num1 = 1;
        int num2 = 0;
        int n = 10; 
        
        //1
        num1 = num1 + num2;
        num2 = num1 - num2;
        //2
        num1 = num1 + num2;
        num2 = num1 - num2;
         //3
        num1 = num1 + num2;
        num2 = num1 - num2;
         //4
        num1 = num1 + num2;
        num2 = num1 - num2;
        //5
        num1 = num1 + num2;
        num2 = num1 - num2;
        //6
        num1 = num1 + num2;
        num2 = num1 - num2;
        //7
        num1 = num1 + num2;
        num2 = num1 - num2;
        //8
        num1 = num1 + num2;
        num2 = num1 - num2;
        //9
        num1 = num1 + num2;
        num2 = num1 - num2;
        //10
        num1 = num1 + num2;
        num2 = num1 - num2;                
        
        System.out.println("Sequência Fibonacci com " + n + " termos é igual a: " + num1);
B

Hum entendi o conceito da coisa hehehe obrigados a todos que ajudaram!!!

hugocardososilva

Acredito que para o que você quer fazer, você precisa incrementar seus num1 e num2 também.
Repare que dentro do laço, a operação manda incrementar a variável n, mas seu num1 e num2 não.

Criado 21 de março de 2016
Ultima resposta 22 de mar. de 2016
Respostas 4
Participantes 4