Java: vérifier si le nombre appartient à la séquence de Fibonacci

Je suis censé écrire un code qui vérifie si un nombre donné appartient à la séquence de Fibonacci. Après quelques heures de dur travail, c'est ce que je suis venu avec:

public class TP2 {

    /**
     * @param args
     */

    public static boolean ehFibonacci(int n) {
        int fib1 = 0;
        int fib2 = 1;
        do {
            int saveFib1 = fib1;
            fib1 = fib2;
            fib2 = saveFib1 + fib2;
            }
        while (fib2 <= n);

        if (fib2 == n)
            return true;
        else
            return false;

    }
    public static void main(String[] args) {
        int n = 8;
        System.out.println(ehFibonacci(n));

    }
}

Je dois être en train de faire quelque chose de mal, parce qu'il renvoie toujours "false". Des conseils sur la façon de résoudre ce problème?

  • Sur une note de côté: - je trouver de l'aide do {} while() boucles n'est pas très pratique courante de nos jours. - Je trouver de l'aide d'un normal while() {} boucle plus facile à lire, parce que vous savez dans quelles conditions le code que vous allez lire la suite sera exécuté. Comme un petit bonus en plus, il permet aussi d'économiser une seule ligne de code. Donc, sauf si vous avez besoin de votre code exécuté au moins une fois et ne peuvent pas facilement faire votre condition refléter le fait que, en utilisant une normale tandis que la boucle serait la voie à suivre.