Se connecter / S'enregistrer

Résolu [JAVASCOOL] Problème condition IF

Solutions (1)
Tags :
  • Javascript
  • Apprendre a programmer
  • Programmation
|
Bien le bonsoir, alors pour un projet en classe, je dois faire une " campagne de souscription" pour une compagnie d'assurance, mais j'ai un problème quand au conditions if de ce programme, en effet j'ai des conditions d'obtention pour cette assurance, les voici :

> Le conducteur peut être célibataire, âgé de plus de 25 ans, mais n'avoir jamais eu d'accident,

>Le conducteur peut être une personne du sexe féminin, mariée et n'ayant eu aucun accident,

> Le conducteur peut être une personne du sexe féminin, mariée et âgé de plus de 25 ans,

> Le conducteur peut être âgé de plus de 25 ans et ayant eu un accident,

> Le conducteur peut être une personne du sexe masculin et marié,

> Le conducteur peut être marié, n'ayant jamais eu d'accident et âgé de plus de 25 ans,



J'ai essayé de mettre mes conditions comme ceci :

  1. if (Femme == 0) { // Si c'est une femme
  2. if (Celibataire == 0) { // celibataire
  3. if (Marie == 0) { //mariée
  4. if (Age >= 25) { //+25
  5. if (Accident == 0) { //accident
  6.  
  7. } else { //pas accident
  8.  
  9. }
  10. } else { //-25
  11.  
  12. }
  13. } else { //pas mariée
  14.  
  15. }
  16. } else { // pas celibataire
  17. if (Marie == 0)
  18. }
  19. } else { // si c'est un homme
  20. if (Celibataire == 0) { // celibataire
  21. if (Marie == 0) { //marié
  22. if (Age >= 25) { //+25
  23. if (Accident == 0) { //accident
  24.  
  25. } else { //pas accident
  26.  
  27. }
  28. } else { //-25
  29.  
  30. }
  31. } else { //pas marié
  32.  
  33. }
  34. } else { // pas celibataire
  35. if (Marie == 0)
  36. }
  37. }


Mais ce que je redoute, c'est un comptage multiple de condition pour une seule et même personne, par exemple un homme marié de plus de 25 ans ayant déjà eu un accident remplis deux condition, et est donc compté deux fois. Donc je viens a vous pour m'aider, je vois pas dans quel ordre demander mes conditions :'( 



Code entier de mon programme :

  1. void main() {
  2. // Déclaration des variables
  3. int Celibataire = 0;
  4. int Marie;
  5. int Age;
  6. int Accident;
  7. int Femme;
  8. int NbP = 0;
  9. int NbS = 0;
  10. String boucle = "";
  11.  
  12. while (!boucle.equals("N")) {
  13. // Récupération des informations
  14.  
  15. println("La personne est-elle une femme ?");
  16. Femme = readInt("La personne est-elle une femme ? Oui -> 0// Non -> 1");
  17. if (Femme == 0) {
  18. println("La personne est une femme");
  19. } else {
  20. println("La personne est un homme");
  21. }
  22. println(" ");
  23.  
  24. //-----------------------------------------------------------------------------------------//
  25.  
  26. println("La personne est-elle celibataire ? ");
  27. Celibataire = readInt("Celibataire -> 0 // Pas celibataire -> 1");
  28. if (Celibataire == 0) {
  29. println("La personne est célibataire");
  30. } else {
  31. println("La personne n'est pas celibataire");
  32. }
  33. println(" ");
  34. //-----------------------------------------------------------------------------------------//
  35.  
  36. println("La personne est-elle mariée ? ");
  37. Marie = readInt("Mariée -> 0 // Pas mariée -> 1");
  38. if (Marie == 0) {
  39. println("La personne est mariée");
  40. } else {
  41. println("La personne n'est pas mariée");
  42. }
  43. println(" ");
  44.  
  45. //-----------------------------------------------------------------------------------------//
  46.  
  47. println("Quel est l'âge de la personne ? :");
  48. Age = readInt("Saisir l'age :");
  49. println("Le demandeur est âgé de " + Age + " ans");
  50. println(" ");
  51.  
  52. //-----------------------------------------------------------------------------------------//
  53.  
  54. println("La personne a-t-elle déjà eu un accident ?");
  55. Accident = readInt("La personne a-t-elle déjà eu un accident ? Oui -> 0// Non -> 1");
  56. if (Accident == 0) {
  57. println("La personne à déjà eu un accident");
  58. } else {
  59. println("La personne n'à jamais eu d'accident");
  60. }
  61. println(" ");
  62.  
  63. NbP = NbP + 1;
  64.  
  65. //-----------------------------------------------------------------------------------------//
  66. if (Femme == 0) { // Si c'est une femme
  67. if (Celibataire == 0) { // celibataire
  68. if (Marie == 0) { //mariée
  69. if (Age >= 25) { //+25
  70. if (Accident == 0) { //accident
  71.  
  72. } else { //pas accident
  73.  
  74. }
  75. } else { //-25
  76.  
  77. }
  78. } else { //pas mariée
  79.  
  80. }
  81. } else { // pas celibataire
  82. if (Marie == 0)
  83. }
  84. } else { // si c'est un homme
  85. if (Celibataire == 0) { // celibataire
  86. if (Marie == 0) { //marié
  87. if (Age >= 25) { //+25
  88. if (Accident == 0) { //accident
  89.  
  90. } else { //pas accident
  91.  
  92. }
  93. } else { //-25
  94.  
  95. }
  96. } else { //pas marié
  97.  
  98. }
  99. } else { // pas celibataire
  100. if (Marie == 0)
  101. }
  102. }
  103.  
  104. println("Continuer les enregistrements? Appuyez sur N pour les stopper sinon presser la barre entrée");
  105. boucle = readString("Continuer les enregistrements ?");
  106. clear();
  107. }
  108. NbS = (NbS / NbP) * 100;
  109. println("Le nombre de personne souscrit est de" + NbS + "%");
  110. }
Contenus similaires
Meilleure solution
partage
, Vieux c*n psychorigide |
Salut,

-Il faut éviter les else vides
-Pour la lisibilité tu peux éviter les accolades quand il n'y a qu'une ligne à l'interieur du if
-Tu peux aussi éviter les imbrications de if en utilisant des "&&", "||" etc...

Citation :

1 > Le conducteur peut être célibataire, âgé de plus de 25 ans, mais n'avoir jamais eu d'accident,
2 >Le conducteur peut être une personne du sexe féminin, mariée et n'ayant eu aucun accident,
3 > Le conducteur peut être une personne du sexe féminin, mariée et âgé de plus de 25 ans,
4 > Le conducteur peut être âgé de plus de 25 ans et ayant eu un accident,
5 > Le conducteur peut être une personne du sexe masculin et marié,
6 > Le conducteur peut être marié, n'ayant jamais eu d'accident et âgé de plus de 25 ans,



if( celibataire && age > 25 && accident == 0) { souscription++; } //1
else if (femme && mariee && ( accident ==0 || age > 25)) { souscription++; } //2 et 3
else if( age > 25 && accident ==0) { souscription++; } //4
else if(masculin && marié) { souscription++; } //5
else if(marié && accient = 0 && age > 25) { souscription++; } // 6
else { pas de souscription }


C'est court, le système de else/if évite qu'une personne soit comptabilisée deux fois.
  • Dreamcaster a sélectionné cette solution comme la meilleure réponse
  • archipeldufond a édité ce message
  • Commenter cette solution |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS