Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur (Scanner sc)

Sujet résolu
    26 août 2015 à 4:29:21

    bonjour alors voila je fait un petit code qui fait la convertion en °C ==> °F et j'ai un petit soucie quand je fait l'operation et qu'il convertie je demnade a l'utilisteur si il veut faire un autre convertisement en utilisan la fonction Scanner sc donc moi normal y'a pas d'erreur mais l'or de l'execution du code il y'a une erreur l'orsque le code arrive a la ligne "49" quand on choisie le 1er choix

    voila

    import java.util.Scanner;
    
    public class rd 
    {
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) 
    	{
    		
    		Scanner sc = new Scanner (System.in);
    		
    		System.out.print("CONVERTISEUR DEGRÉ CELSIUS ET DEGRÉ FARHENHEIT !\n------------------------------------------------");
    		
    		int choix ;
    
    		double ceil ;
    		
    		double farh ;
    				
    		char encore = 'Y';
    		
    		while (encore == 'Y' )
    		{
    						
    			System.out.print("\nChoisisez le mode de convertion :\n1-Convertiseur Ceilsius ==> Farhenheint\n2-Convertiseur Farhenheint ==> Ceilsius\nVotre choix : ");
    
    			choix = sc.nextInt();
    			
    		    encore = 0;
    			
    			//convertire de C a F
    			
    			while (choix == 1)
    			{
    				System.out.print("Tenperature a convertire : ");
    				
    				ceil = sc.nextDouble();
    				
    				farh = 1.8 * ceil + 32 ;
    				
    				System.out.println(ceil + " °C correspond a : " + farh + " °F .");
    				
    				while (encore != 'Y' || encore != 'N')
    				{
    				
    			    System.out.print("Souhaité vous convertire une autre température ? (Y/N) : ");
    				
    			    encore = sc.nextLine().charAt(0);
    				
    				choix = 0;
    				}
    			}
    			//convertire de F a C
    			
    			while ( choix == 2)
    			{
    				choix = 0;
    				
    				System.out.print("Tenperature a convertire : ");
    				
    				farh = sc.nextDouble();
    				
    				ceil = ((farh - 32) * 5) / 9 ;
    				
    				System.out.println(farh + " °F correspond a : " + ceil + " °C .");
    				
    				while (encore != 'Y' && encore != 'N')
    				{
    				System.out.print("Souhaité vous convertire une autre température ? (Y/N) : ");
    				
    				encore = sc.nextLine().charAt(0);
    				
    				}
    			}
    			
    			System.out.print("Au revoire !)");
    			
    		}
    
    	}
    
    
    }
    

    please help

    • Partager sur Facebook
    • Partager sur Twitter
      26 août 2015 à 7:45:59

      Salut,

      Après avoir utilisé un sc.nextInt() ou sc.nextDouble(), il faut vider la précédente ligne avec  sc.nextLine. C'est très bien expliqué dans le cours ;)

      import java.util.Scanner;
       
      public class rd
      {
          /**
           * @param args
           */
          public static void main(String[] args)
          {
               
              Scanner sc = new Scanner (System.in);
               
              System.out.print("CONVERTISEUR DEGRÉ CELSIUS ET DEGRÉ FARHENHEIT !\n------------------------------------------------");
               
              int choix ;
       
              double ceil ;
               
              double farh ;
                       
              char encore = 'Y';
               
              while (encore == 'Y' )
              {
                               
                  System.out.print("\nChoisisez le mode de convertion :\n1-Convertiseur Ceilsius ==> Farhenheint\n2-Convertiseur Farhenheint ==> Ceilsius\nVotre choix : ");
       
                  choix = sc.nextInt();
                   
                  encore = 0;
                   
                  //convertire de C a F
                   
                  while (choix == 1)
                  {
                      System.out.print("Tenperature a convertire : ");
                       
                      ceil = sc.nextDouble();
                       
                      farh = 1.8 * ceil + 32 ;
                       
                      System.out.println(ceil + " °C correspond a : " + farh + " °F .");
                       
                      while (encore != 'Y' && encore != 'N')
                      {
                       
                      System.out.print("Souhaité vous convertire une autre température ? (Y/N) : ");
                      sc.nextLine(); 
                      encore = sc.nextLine().charAt(0);
                       
                      choix = 0;
                      }
                  }
                  //convertire de F a C
                   
                  while ( choix == 2)
                  {
                      choix = 0;
                       
                      System.out.print("Tenperature a convertire : ");
                       
                      farh = sc.nextDouble();
                       
                      ceil = ((farh - 32) * 5) / 9 ;
                       
                      System.out.println(farh + " °F correspond a : " + ceil + " °C .");
                       
                      while (encore != 'Y' && encore != 'N')
                      {
                      System.out.print("Souhaité vous convertire une autre température ? (Y/N) : ");
                      sc.nextLine();
                      encore = sc.nextLine().charAt(0);
                       
                      }
                  }
                   
                  System.out.print("Au revoire !)");
                   
              }
       
          }
       
       
      }



      • Partager sur Facebook
      • Partager sur Twitter
        26 août 2015 à 10:25:52

        merci desolé je suis un boulet maus vue l'heure a la quelle je travaillé je suppose que c'etai compréhensible ?
        • Partager sur Facebook
        • Partager sur Twitter

        Erreur (Scanner sc)

        × 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