我正在Eclipse中使用一个小型计算器,用户输入一个类似的方程式1 + 1.但是,我不确定如何允许用户输入更复杂的方程式1 + 2 * 3 / 4.
此外,如果用户尝试输入不是有效等式的字符串,我希望出现错误.这是我的代码:
public static double addition(double x, double y) // The Addition Operation
{
double add = x + y;
return add;
}
public static double subtraction(double x, double y) // The Subtraction Operation
{
double sub = x - y;
return sub;
}
public static double division(double x, double y) // The Devision Operation
{
double div = x / y;
return div;
}
public static double multiplication(double x, double y) // The Multiplication Operation
{
double multi = x * y;
return multi;
}
public static double factorial(double x) // The Factorial (F!)
{
double result = 1;
while (x > 1)
{
result = result * x;
x = x - 1;
}
return result;
}
static Scanner scanner = new Scanner(System.in); // a Global Scanner.
public static void main(String[] args)
{
double numb1, numb2;
char operation;
System.out.println("Enter Your Equation: ");
// Split string by space
String[] parts = scanner.nextLine().split("");
// Convert to corresponding types
operation = parts[1].charAt(0);
switch (operation)
{
case '+':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + addition(numb1, numb2));
break;
case '-':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + subtraction(numb1, numb2));
break;
case '*':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + multiplication(numb1, numb2));
break;
case '/':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + division(numb1, numb2));
break;
case '!':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
System.out.println("The Product is: " + factorial(numb1));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |