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. 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
    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. J'arrive pas à la mettre :s je sais pas comment on fait, sa marche pas IOException e
      0
      1. Salut,

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

        Cordialement,

        Dan
        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. Pardon elle y est je regarde !!!
            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. 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. faire un essai en entrant 0,2 >>>> virgule

                  Dan
                  0
                  1. t'es trop fort :)

                    sa marche, merci beaucoup
                    0
                    1. Je pense que tu as compri pourquoi: la locale...

                      Dan
                      0