Problème retour variable

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

  1. tksteph Messages postés 208 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