Saisir une entrée au clavier (java)

Résolu
Bonjour,

J'ai ce bout de code:

try
			  {
				Scanner s = new Scanner(System.in);
				System.out.println("entrez le pas d'itération");
				h = s.nextDouble();
			  }
			  catch(Exception e){System.out.println("pas de h :(");}


Sachant que h est de type :
public static double h;


seulement voila, sa ne marche pas quand je rentre 0.2 par exemple... si vous savez pourquoi, votre aide est la bienvenu.

--
La vérité appartient à ceux qui la cherchent et non point à ceux qui prétendent la détenir.
(n'oubliez pas de mettre résolu si vous avez trouvé votre   bonheur: pensez aux autres^^')
Configuration: windows viste, firefox

11 réponses

  1. Je pense que tu as compri pourquoi: la locale...

    Dan
    0
    1. t'es trop fort :)

      sa marche, merci beaucoup
      0
      1. faire un essai en entrant 0,2 >>>> virgule

        Dan
        0
        1. sa me met

          Exception :
          java.util.InputMismatchException
          at java.util.Scanner.throwFor(Unknown Source)
          at java.util.Scanner.next(Unknown Source)
          at java.util.Scanner.nextDouble(Unknown Source)
          at TestLissage.main(TestLissage.java:44)

          donc sa correspond à cette ligne:

          h = s.nextDouble();
          0
          1. Re,

            Pour avoir la liste StackTrace tu ajoutes ceci à chaque catch:

            catch(Exception e)
                           {
                              System.err.println("Exception :");
                              e.printStackTrace();
                           }
            


            Dan
            0
            1. Pardon elle y est je regarde !!!
              0
              1. j'ai mis juste la partie concerné et de manière à ce qu'elle compile:

                import java.io.IOException;
                import java.util.Scanner;
                
                class TestLissage
                {
                	
                	public static int n;
                	public static double y0, x0, Yn, Xn, h;
                	public static int choix;
                	
                	  public static void main(String[] args)
                	  {
                		  while (choix != 6 && choix != 5 && choix != 4 && choix != 3 && choix != 2 && choix != 1 && choix != 7)
                		  {
                			  System.out.println("veuillez choisir l'application à résoudre:");
                			  System.out.println("");
                			  System.out.println("1: y'(x) = x + y(x)	solution: y(x) = exp(x)-x-1	avec y(0) = 0");
                			  System.out.println("2: y'(x) = -2xy(x)	solution: y(x) = exp(-x²)	avec y(0) = 1");
                			  System.out.println("3: y'(x) = -xy²(x)	solution: y(x) = 2/(1+x²)	avec y(0) = 2");
                			  System.out.println("4: y'(x) = y(x)		solution: y(x) = exp(x)		avec y(0) = 1");
                			  System.out.println("5: y'(x) = ");
                			  System.out.println("6: y'(x) = ");
                			  System.out.println("7: quitter");
                			  try
                			  {
                				  Scanner s = new Scanner(System.in);
                				  System.out.println("entrez votre choix");
                				  choix = s.nextInt();
                			  }
                			  catch(Exception e){}
                		  }
                		  if (choix == 1|| choix == 2 || choix == 3 || choix == 4 || choix == 5 || choix == 6)
                		  {
                			  try
                			  {
                				Scanner s = new Scanner(System.in);
                				System.out.println("entrez le nombre d'itération");
                				n = s.nextInt();
                			  }
                			  catch(Exception e){}
                			  try
                			  {
                				Scanner s = new Scanner(System.in);
                				System.out.println("entrez le pas d'itération");
                				h = s.nextDouble();
                			  }
                			  catch(Exception e){}
                                          System.out.println(choix);
                                          System.out.println(n);
                                          System.out.println(h);
                		  }
                }
                
                0
                1. Salut,

                  Donne nous la partie du code concernée ce sera plus facile à corriger...

                  Cordialement,

                  Dan
                  0
                  1. J'arrive pas à la mettre :s je sais pas comment on fait, sa marche pas IOException e
                    0
                    1. et bien le try ne marche pas, le programme compile, touit fonctionne sauf cette partie, h = s.nextDouble();

                      sa rentre direct dans le catch et sa affiche pas de h :( parceque le try a pas marcher.

                      En gros, on fait comment pour enregistrer une entré au clavier de type 0.x
                      0
                      1. dans le catch tu peux afficher l'exception, le message pourra être instructif.
                        0
                    2. bonjour,

                      qu'est ce qui ne "marche pas" ? erreur de compilation ou à l'exécution ? il fait un truc qu'il ne devrait pas ? il ne fait pas un truc qu'il devrait ? si oui quoi ? "Avec 0.2 par exemple" : ça veut dire qu'il ne fonctionne pas avec 0.2, mais il fonctionne avec autre chose ? si oui quoi ? si non, il faudrait le préciser.

                      Sinon je vois quelque chose de bizarre : System.out.println("pas de h :(");

                      Ceci n'affichera pas la valeur de h....
                      0