Calcul Java
Résolu
thapipo
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
Xmzd Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Xmzd Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais savoir comment faire le calcul suivant :
ex :
int reponse;
char operateur = '*'
int a = 25
int b = 2
je voudrais que Java puisse faire le calcul de la multiplication (et autres operateur)
dans mon exemple ça serait :
reponse = a + operateur + b;
devrait donner 50 !
mais ca ne marche pas donc ! java prend la valeur du code UNICODE du caractère '*'
Merci !
Je voudrais savoir comment faire le calcul suivant :
ex :
int reponse;
char operateur = '*'
int a = 25
int b = 2
je voudrais que Java puisse faire le calcul de la multiplication (et autres operateur)
dans mon exemple ça serait :
reponse = a + operateur + b;
devrait donner 50 !
mais ca ne marche pas donc ! java prend la valeur du code UNICODE du caractère '*'
Merci !
A voir également:
- Calcul Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
dans ce cas fais plutôt ça :
int reponse;
int a =25;
int b=2;
reponse = a*b;
return reponse;
Qui ne tente rien n'a rien
int reponse;
int a =25;
int b=2;
reponse = a*b;
return reponse;
Qui ne tente rien n'a rien
ma méthode est celle-ci :
public static int calculer ( char operation, int op1, int op2 ){
int reponse = 0;
reponse = (op1 + operation + op2);
return reponse;
}
est-ce qu'il faudrait que j'utilise un String dans la méthode pour donner la valeur du char pour que je puisse faire l'opération demandée ?
public static int calculer ( char operation, int op1, int op2 ){
int reponse = 0;
reponse = (op1 + operation + op2);
return reponse;
}
est-ce qu'il faudrait que j'utilise un String dans la méthode pour donner la valeur du char pour que je puisse faire l'opération demandée ?
Tu ne peux pas faire obtenir le résultat simplement, en construisant le String tu aurais juste ton expression bien formée ("25*2" avec ton exemple), ce qu'il faut après c'est évaluer cette expression et c'est là qu'intervient le moteur JavaScript... À moins que tu ne veuilles refaire ce qui existe déjà et gérer tous les cas possibles mais c'est plus compliqué à mettre en place.
public static final ScriptEngine JavaScript = new ScriptEngineManager().getEngineByName("JavaScript"); public static double eval(String expr) { try { Object obj = JavaScript.eval(expr); if (obj instanceof Double) return (double) obj; else return Double.NaN; } catch (ScriptException e) { System.err.println(e); return Double.NaN; } } public static int calculer(char operation, int op1, int op2) { String expr = String.format("%d%c%d", op1,operation,op2); return (int) eval(expr); } public static void main(String[] args) throws ScriptException { System.out.println(calculer('*',25,2)); }
humm Je t'avouerais que je suis débutant en Java, le hic c'est que je suis limité à utiliser les classes String & Character, mais MERCI beaucoup pour les réponses, j'essaierais de voir ce que je peux faire avec cela !
le plus simple selon moi reste le if ou le switch ensuite:
avec if:
public static int calculer(char operation, int op1, int op2)
{
if(operation=='*')
{
return (op1*op2);
}
return (0); //peut-etre pas judicieux de mettre 0 ici mais c'est une autre question
}
avec switch:
public static int calculer(char operation, int op1, int op2)
{
switch(operation)
{
case '+': return (op1+op2); break;
case '-': return (op1-op2); break;
case '*': return (op1*op2); break;
case '/': return (op1/op2); break;
default: return(0); //peut-etre pas judicieux de mettre 0 ici mais c'est une autre question
}
}
Le switch te permettant de rajouterd'autres opérateurs, ce qui reviendrait à faire plusieurs if.
avec if:
public static int calculer(char operation, int op1, int op2)
{
if(operation=='*')
{
return (op1*op2);
}
return (0); //peut-etre pas judicieux de mettre 0 ici mais c'est une autre question
}
avec switch:
public static int calculer(char operation, int op1, int op2)
{
switch(operation)
{
case '+': return (op1+op2); break;
case '-': return (op1-op2); break;
case '*': return (op1*op2); break;
case '/': return (op1/op2); break;
default: return(0); //peut-etre pas judicieux de mettre 0 ici mais c'est une autre question
}
}
Le switch te permettant de rajouterd'autres opérateurs, ce qui reviendrait à faire plusieurs if.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu devrais construire ton expression sous forme de String puis utiliser un ScriptEngine pour l'évaluer, par exemple avec le moteur JavaScript :
public static void main(String[] args) throws ScriptException { char operateur = '*'; int a = 25; int b = 2; ScriptEngine JavaScript = new ScriptEngineManager().getEngineByName("JavaScript"); double x = (double) JavaScript.eval(String.format("%d%c%d",a,operateur,b)); System.out.println(x); }