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 -
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 ! )
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 ! )
A voir également:
- Problème retour variable
- Retour à la ligne excel formule - Guide
- Retour à la ligne chatgpt - Forum Réseaux sociaux
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Vba range avec variable ✓ - Forum VB / VBA
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:
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
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