Saisir une entrée au clavier (java)

Résolu/Fermé
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 - 9 janv. 2010 à 18:42
 Utilisateur anonyme - 9 janv. 2010 à 20:17
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.
A voir également:

11 réponses

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
9 janv. 2010 à 18:47
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
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
9 janv. 2010 à 18:51
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
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
9 janv. 2010 à 18:54
dans le catch tu peux afficher l'exception, le message pourra être instructif.
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
9 janv. 2010 à 19:13
J'arrive pas à la mettre :s je sais pas comment on fait, sa marche pas IOException e
0
Utilisateur anonyme
9 janv. 2010 à 19:41
Salut,

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

Cordialement,

Dan
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
9 janv. 2010 à 19:44
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
Utilisateur anonyme
9 janv. 2010 à 19:45
Pardon elle y est je regarde !!!
0
Utilisateur anonyme
9 janv. 2010 à 20:07
Re,

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

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


Dan
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
9 janv. 2010 à 20:11
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
Utilisateur anonyme
9 janv. 2010 à 20:13
faire un essai en entrant 0,2 >>>> virgule

Dan
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 699
9 janv. 2010 à 20:14
t'es trop fort :)

sa marche, merci beaucoup
0
Utilisateur anonyme
9 janv. 2010 à 20:17
Je pense que tu as compri pourquoi: la locale...

Dan
0