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 -
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 ! )
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
-
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