Problème retour variable

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
tksteph Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   25
 
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