Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pour la condition if

    28 avril 2016 à 18:39:51

    Bonjour tous le monde, je ne comprends pas pourquoi mon programme ne veut lire le "if( mode == '2'); Ligne 121 pourtant il lit très bien le premier "if( mode== '1'); Ligne 61 je précise que je débute dans la programmation merci d'avance à ceux qui prendrons le temps pour m'aider. voila mon programme:

    import java.util.Scanner;
    
     
    
    public class logiciel_livraison_1 {
    
     
    
    public static void main(String[] args) {
    
    // TODO Auto-generated method stub
    
           // Initialisation des variables
    
     Scanner sc = new Scanner(System.in);
    
     char mode= ' ', mode2=' ', reponse= ' ';
    
     int nourriture=350, colis=350, personne=400, personne_hg=1000, livreur_express=600 ;
    
     int canabis=450, contrefacon=450, clandestin=500, danger_prisonnier=1200, coke=2000;
    
     int km = ' ';
    
     int argent = ' ';
    
     System.out.println("Salut bienvenue dans le calculateur de livraison");
    
     
    
     do{
    
     do{    // boucle do pour le choix du mode
    
    mode = ' ';
    
    System.out.println("Choisissez votre mode ?");
    
    System.out.println("1-Livraison légale");
    
    System.out.println("2-livraison illégale");
    
    mode = sc.next().charAt(0);  
    
    if(mode !='1' && mode !='2' )
    
    {
    
    System.out.println("veuillez saisire 1 ou 2 ");
    
    }
    
     }while(mode !='1' && mode !='2' ) ;
    
     
    
      
    
     // boucle do choix du mode légale
    
    if(mode == '1')
    
     
    
    do{
    
    mode2 = ' ';
    
    System.out.println("Choisissez votre livraison");
    
    System.out.println("1-nourriture");
    
    System.out.println("2-colis");
    
    System.out.println("3-personne");
    
    System.out.println("4-personne haute gamme");
    
    System.out.println("5-livreur express");
    
    mode2 = sc.next().charAt(0);  
    
    if(mode2 !='1' && mode2 !='2' && mode2 !='3' && mode2 !='4' && mode2 !='5' )
    
    {
    
    System.out.println("veuillez saisire 1, 2, 3, 4, 5 ");
    
    }
    
         // if pour choix des kilométres pour légales
    
    if(mode2 == '1')
    
    {
    
    System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * nourriture) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '2')
    
    { 
    
         System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * colis) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '3')
    
    { 
    
         System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * personne) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '4')
    
    { 
    
         System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * personne_hg) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '5')
    
    { 
    
         System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * livreur_express) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    System.out.println("Voulez vous faire une notre livraison légale ? O/N");
    
         reponse = sc.next().charAt(0);
    
     
    
     }while(reponse !='N');
    
     }while(reponse !='O');
    
     
    
     // boucle do choix du mode illégale
    
     if( mode == '2')
    
     
    
    mode2 = ' ';
    
    System.out.println("Choisissez votre livraison");
    
    System.out.println("1-canabis");
    
    System.out.println("2-contrefacon");
    
    System.out.println("3-clandestin");
    
    System.out.println("4-dangereur prisonnier");
    
    System.out.println("5-coke/meth");
    
    mode2 = sc.next().charAt(0);  
    
    if(mode2 !='1' && mode2 !='2' && mode2 !='3' && mode2 !='4' && mode2 !='5' )
    
    {
    
    System.out.println("veuillez saisire 1, 2, 3, 4, 5 ");
    
    }
    
     
    
    //if pour choix des kilométres pour légales
    
    if(mode2 == '1')
    
    {
    
    System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * canabis) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '2')
    
    { 
    
       System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * contrefacon) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '3')
    
    { 
    
       System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * clandestin) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '4')
    
    { 
    
       System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * danger_prisonnier) ;
    
    System.out.println("argent : " + argent);
    
    }
    
    if(mode2 == '5')
    
    { 
    
       System.out.println("Combien de km ?");
    
    km = sc.nextInt();
    
    argent =( km * coke) ;
    
    System.out.println("argent : " + argent);
    
    }
    
     } 
    
     
    
     
    
     
    
     }

    et voici mon probleme : 

    -
    Edité par WiliamGreffet 28 avril 2016 à 18:48:00

    • Partager sur Facebook
    • Partager sur Twitter
      29 avril 2016 à 1:16:22

      Salut je ne sais pas si tu as résolut ton problème mais tu as oublié un petit crochet après ta condition : 

      if ( mode == '2'){

      //instruction

      }

      A bientôt !

      • Partager sur Facebook
      • Partager sur Twitter
      Quand tu regardes l'abîme, l'abîme regarde aussi en toi.
        29 avril 2016 à 1:16:47

        Salut je ne sais pas si tu as résolut ton problème mais tu as oublié un petit crochet après ta condition : 

        if ( mode == '2'){

        //instruction

        }

        A bientôt !

        • Partager sur Facebook
        • Partager sur Twitter
        Quand tu regardes l'abîme, l'abîme regarde aussi en toi.
          29 avril 2016 à 9:29:48

          Salut,

          Pense tout de même à remplacer ton char par un int, et à utiliser un switch au lieu de cumuler les if.

          Le fait d'utiliser un entier à la place d'un caractère te permettra de récupérer la valeur plus facilement avec sc.nextInt();

          • Partager sur Facebook
          • Partager sur Twitter

          Problème pour la condition if

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown