Problème retour variable

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 16 juin 2013 à 13:59
tksteph Messages postés 204 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 3 janvier 2018 - 16 juin 2013 à 17:48
Bonjour, j'ai fait un simple algorithme qui doit renvoyer la partie entière d'un double d. Alors j'ai écris cet algorithme :

public int entiere(double d)
{
int i = 0;
int p =0;
while (i<d+1)
{

if(d-i>1)
i = i+1;
else
p = i;
}


return p;

}
Mais cet algo me renvoie toujours 0. Et je me dis que c'est parce que j'ai initialisé ma variable p à 0. Mais si je ne l'initialise pas, ça ne compile pas. Comment dois-je faire pour que ce programme renvoie le p qui a été modifié par la boucle while ?
Merci d'avance pour vos réponses ( comme vous pouvez le voir à ma question je suis débutant en java alors n'employez pas de termes trop compliqués svp ! )



1 réponse

tksteph Messages postés 204 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 3 janvier 2018 25
16 juin 2013 à 17:48
Bonjour ,
J'ai quelques doutes quant au résultat de ton Algo,
Je pense qu'il rentrera dans une boucle infinie à chaque fois. Ta condition dans le while n'est pas suffisante si c'est bien la fonction partie entière que tu implémente.

tu peux ajuster ton programme de la sorte:


public int entiere(double d) {
        int i = 0;
        int p = 0;
        while ((i < d + 1) && (p + 1 < d)) {

            if (d - i > 1) {
                i = i + 1;
            } else {
                p = i;
            }
        }
        return p;

    }


Et attention avec les accollades quand tu utilise des structures de controle (if, boucles,...)

NB: En java il existe la fonction Math.floor(double d) qui te donne la partie entière du nombre qui lui est passé en paramètre

0