Posez votre question Signaler

Saisir une entrée au clavier (java) [Résolu]

varfendell 2971Messages postés 27 décembre 2007Date d'inscription 19 août 2011Dernière intervention - Dernière réponse le 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.
Lire la suite 

Saisir une entrée au clavier (java) »

12 réponses
Réponse
+0
moins plus
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....
Ajouter un commentaire
Réponse
+0
moins plus
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
Pacorabanix- 9 janv. 2010 à 18:54
dans le catch tu peux afficher l'exception, le message pourra être instructif.
Ajouter un commentaire
Réponse
+0
moins plus
J'arrive pas à la mettre :s je sais pas comment on fait, sa marche pas IOException e
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

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

Cordialement,

Dan
Ajouter un commentaire
Réponse
+0
moins plus
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);
		  }
}
Ajouter un commentaire
Réponse
+0
moins plus
Pardon elle y est je regarde !!!
Ajouter un commentaire
Réponse
+0
moins plus
Re,

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

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


Dan
Ajouter un commentaire
Réponse
+0
moins plus
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();
Ajouter un commentaire
Réponse
+0
moins plus
faire un essai en entrant 0,2 >>>> virgule

Dan
Ajouter un commentaire
Réponse
+0
moins plus
t'es trop fort :)

sa marche, merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
Je pense que tu as compri pourquoi: la locale...

Dan
Ajouter un commentaire
Ce document intitulé « saisir une entrée au clavier (java) » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?