Quel est le souci sur ma boucle et la variable f ?
Résolu/Fermé
Pulsar360
Messages postés
114
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
29 août 2018
-
Modifié par NHenry le 30/01/2016 à 16:40
Pulsar360 Messages postés 114 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 29 août 2018 - 30 janv. 2016 à 18:59
Pulsar360 Messages postés 114 Date d'inscription lundi 12 novembre 2012 Statut Membre Dernière intervention 29 août 2018 - 30 janv. 2016 à 18:59
A voir également:
- Quel est le souci sur ma boucle et la variable f ?
- Chkdsk /f - Guide
- F lux - Télécharger - Divers Utilitaires
- Redmi note 10 redemarre en boucle - Forum Xiaomi
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
1 réponse
Utilisateur anonyme
30 janv. 2016 à 17:17
30 janv. 2016 à 17:17
Bonjour
À mon humble avis, f est bien incrémenté, mais la boucle qui ne prend jamais fin est celle-ci :
Si y est supérieur à 25, tu rentres dans la boucle et tu n'en sors jamais puisque rien ne vient modifier la valeur de y.
Or, lors de la seconde itération de ta boucle do, y est supérieur à 25.
À mon humble avis, f est bien incrémenté, mais la boucle qui ne prend jamais fin est celle-ci :
while (y>25) { u=u+25; x++; }
Si y est supérieur à 25, tu rentres dans la boucle et tu n'en sors jamais puisque rien ne vient modifier la valeur de y.
Or, lors de la seconde itération de ta boucle do, y est supérieur à 25.
30 janv. 2016 à 18:00
Au premier tour y=21.3 donc pas de problème, mais après y=42.6...
Remarque : mettre un commentaire comme ceci c'est bien :
Mais ce serait encore mieux si les variables étaient directement bien nommées. Comme ça le code serait bien plus lisible.
De plus, contrairement à d'autres langages il n'est pas du tout obligatoire de déclarer toutes les variables au début du code. Il est même plus efficace de les mettre au plus proche de leur utilisation.
Enfin, une boucle avec cette structure :
Devrait être remplacé comme ceci :
De manière générale, la boucle do/while est assez rare en Java.
30 janv. 2016 à 18:59
J'ai donc pu réussir ce que je souhaiter.
Résultat ci-dessous :
public class Atchoom {
public static void main(String[] args) {
//x=nbr(s) de caps u=prix du ou des cap(s) b=le reste
//f=nbr(s) de semaine(s) b1=reste du calcule precedent
int x = 10; double b = 0; double u = 0; int f=0;
double g,y,g2; double y1=0; double b1=0;int x1=0; int c=0;
while(f<17) {
g = (x*2.13);
y = (g+b1);
x1=x;
if (y>25){
y1=y;
while (y>25){
u=u+25;
c++;
x++;
y=y-25;
b=y;
}
}
else{
y1=y;
b=y;
}
f++;
System.out.println("Semaine "+f+" : "+x1+" x 2.13 = "+g+" + "+b1+" = "+y1+" - "+u+" = "+b+" (+"+c+"caps).");
System.out.println();b1=b;u=0;c=0;
}
System.out.println("Fin");
}
}
Il me reste a faire en sorte d'avoir seulement deux chiffre apres la virgule et ça sera parfait.
Merci bien.