Calculatrice simple en java

Résolu/Fermé
sirine_01 Messages postés 26 Date d'inscription vendredi 8 janvier 2010 Statut Membre Dernière intervention 14 décembre 2011 - 7 oct. 2011 à 11:32
xoft-ob Messages postés 30 Date d'inscription vendredi 2 septembre 2011 Statut Membre Dernière intervention 9 juin 2012 - 19 oct. 2011 à 00:59
Bonjour,

je suis débutante en programmation java , et j'ai essai je realisé une calculatrice simple "sans graphique" en java mais ça marche pas :( et j'ai pas trouver l'erreur .
voila le code :

import java.util.Scanner;
public class Calculatrice {
public static void main(String[] argv )
{
Scanner s= new Scanner(System.in);
System.out.println("donner le 1 er caractere ");
int n=s.nextInt();
System.out.println("donner le 2 eme caractere ");
int m=s.nextInt();
System.out.println("donner l'operateur");
String c=s.nextLine();
System.out.println(c);

if (c=="+") System.out.println(n+"+"+m+"="+(n+m));
else if (c=="-") System.out.println(n+"-"+m+"="+(n-m));
else if (c=="*") System.out.println(n+"*"+m+"="+(n*m));
else if (c=="/") System.out.println(n+"+"+m+"="+(n/m));
else System.out.println ("erreur");
}
}
et merci d'avance :)
A voir également:

3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
7 oct. 2011 à 13:09
Quand tu demandes de récupérer nextInt, Scanner récupères juste l'entier pas le reste de la ligne, par exemple si tu tapes "123abcdef\n", il va lire 123 mais la chaîne "abcdef\n" va être en attente qu'on la récupère. Il faut faire un nextLine derrière pour que la chaîne soit consommée, parce que sinon il ne le fera qu'au prochain nextLine et du coup ton opérateur c sera égal à "abcdef\n"
Solution simple pour corriger le bug : après un nextInt tu mets un nextLine qui va consommer tout le reste de la ligne que tu as entré (en particulier le saut de ligne \n)

System.out.println("donner le 1 er caractere ");
int n=s.nextInt(); 
s.nextLine();

System.out.println("donner le 2 eme caractere ");
int m=s.nextInt(); 
s.nextLine();

String c=s.nextLine();
System.out.println(c);

Autre bug, mais c'est une erreur de débutant ce coup-ci, il ne faut pas comparer deux chaînes de caractères avec == mais avec la méthode equals :

if (c.equals("+"))
    System.out.println(n+"+"+m+"="+(n+m));
5
xoft-ob Messages postés 30 Date d'inscription vendredi 2 septembre 2011 Statut Membre Dernière intervention 9 juin 2012 4
19 oct. 2011 à 00:59
essaye ce lien:
http://www.tech4um.com/D%C3%A9veloppement_Logiciel-Java-Une_simple_calculatrice_en_Java-83.html
2
sirine_01 Messages postés 26 Date d'inscription vendredi 8 janvier 2010 Statut Membre Dernière intervention 14 décembre 2011 1
9 oct. 2011 à 00:39
merci bien , votre solution ma aider à résoudre le problème ;)
1