//Code by Regie
//Name: Calculator using args
public class Calculator {
public static void main(String[] args) {
double num1 = 0;
double num2 =0;
try { //Handle Numberformat error
if (args.length == 0) {
System.out.println("Commands: ");
System.out.println("Compiled Java File:");
System.out.println("java Calculator <num1> <op> <num2>");
System.out.println("Example: java Calculator 1 + 1");
System.out.println();
System.out.println("Commands: ");
System.out.println("None Compiled Java File:");
System.out.println("java Calculator.java <num1> <op> <num2>");
System.out.println("Example: java Calculator.java 1 + 1");
System.out.println();
System.out.println("Use this 4 Operators: + - \\* /");
System.out.println("Addition: +");
System.out.println("Subtraction: -");
System.out.println("Multiplication: \\*");
System.out.println("Division: /");
return;
} else if (!(args.length == 3)) {
System.out.println("Invalid Command!\nExample: java Calculator 1 + 1\nExample: java Calculator.java 1 + 1");
return;
} else if (!((args[1].equals("+")) || (args[1].equals("-")) || (args[1].equals("*")) || (args[1].equals("/")))) {
System.out.println("Invalid Operator!\nExample: java Calculator 1 + 1\n" + //
"Example: java Calculator.java 1 + 1");
System.out.println("Use this 4 Operators: + - \\* /");
System.out.println("Addition: +");
System.out.println("Subtraction: -");
System.out.println("Multiplication: \\*");
System.out.println("Division: /");
return;
} else if (((args[0].equals("0")) || (args[2].equals("0"))) && (args[1].equals("/"))) {
System.out.println("Cannot use 0 in Division");
return;
}
num1 = Double.parseDouble(args[0]);
num2 = Double.parseDouble(args[2]);
}catch (NumberFormatException e) {
System.out.println("Invalid Command! You entered a String, please use number.\nExample: java Calculator 1 + 1");
return;
}
double answerDouble = 0;
int answerInt = 0;
String answer = "";
switch (args[1]) {
case "+":
answerDouble = num1+num2;
answer = Double.toString(answerDouble);
if (!(args[0].contains(".") || args[2].contains("."))) {
answerInt = (int) answerDouble;
answer = Integer.toString(answerInt);
}
break;
case "-":
answerDouble = num1-num2;
answer = Double.toString(answerDouble);
if (!(args[0].contains(".") || args[2].contains("."))) {
answerInt = (int) answerDouble;
answer = Integer.toString(answerInt);
}
break;
case "*":
answerDouble = num1*num2;
answer = Double.toString(answerDouble);
if (!(args[0].contains(".") || args[2].contains("."))) {
answerInt = (int) answerDouble;
answer = Integer.toString(answerInt);
}
break;
case "/":
answerDouble = (num1)/num2;
answer = Double.toString(answerDouble);
if (num1%num2 == 0) {
answerInt = (int) answerDouble;
answer = Integer.toString(answerInt);
}
break;
}
System.out.println("Answer = "+answer);
answerInt = (int) answerDouble;
if(answerInt == 2147483647){
System.out.println("Answer might be wrong! 2147483647 is the integer limit.");
}
if(answerInt == -2147483648){
System.out.println("Answer might be wrong! -2147483648 is the integer limit.");
}
}
}