我已经写了一些基本的代码中使用二个部分,计算数学表达式,但我难倒就如何进行计算上比这更如1/2 + 1/2 * 1/2
如何进行方程多组分
我为两个部分代码如下。有什么建议么?
import java.util.Scanner;
public class Evaluate {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
System.out.println("Enter your equation, please seperate fractions and operators with a space: ");
String[] equation = in.nextLine().split(" ");
String a = equation[0];
String a2 = equation[2];
String a4 = equation[1];
String[] a1 = a.split("/");
String[] a3 = a2.split("/");
int b = Integer.parseInt(a1[0]);
int c = Integer.parseInt(a1[1]);
int b1 = Integer.parseInt(a3[0]);
int c1 = Integer.parseInt(a3[1]);
Fraction first = new Fraction(b,c);
Fraction second = new Fraction(b1,c1);
if(a4.equals("*")){
Fraction multi = first.multiply(second);
System.out.println(multi);
}
else if(a4.equals("+")){
Fraction add = first.add(second);
System.out.println(add);
}
else if(a4.equals("-")){
Fraction sub = first.subtract(second);
System.out.println(sub);
}
else if(a4.equals("/")){
Fraction div = first.divideBy(second);
System.out.println(div);
}
}
}
如果你想超过2个输入,第一步是重新编写代码,以便您能接受“任何数量的输入”。简单地从2扩展到3会让代码变得越来越难以维护。聚集在列表中输入,然后解析列表,一旦用户完成输入数据。 – 2014-11-04 22:37:25
感谢您的回复迈克。对不起,但我不明白。你能给我一个线索让我开始? – Gangadi 2014-11-04 22:51:12
要非常小心。你需要确保你使用的浮点值,当你划分,或者你会遇到整数除法问题(截去小数部分)。 – Makoto 2014-11-05 00:20:56