diff --git a/out/production/untitled/com/company/Main.class b/out/production/untitled/com/company/Main.class index 0d58a0b..eaf6313 100644 Binary files a/out/production/untitled/com/company/Main.class and b/out/production/untitled/com/company/Main.class differ diff --git a/src/com/company/Calc.java b/src/com/company/Calc.java new file mode 100644 index 0000000..63ca972 --- /dev/null +++ b/src/com/company/Calc.java @@ -0,0 +1,58 @@ +package com.company; + + +public class Calc { + public static void print(String text) { //this is a small function to makes it easier to print out to terminal + System.out.println(text); //similar to python output + } + //math functions + public static double add(String num1, String num2){ + double add1 = Double.parseDouble(num1); + double add2 = Double.parseDouble(num2); + return add1 + add2; + } + public static double sub(String num1, String num2){ + double sub1 = Double.parseDouble(num1); + double sub2 = Double.parseDouble(num2); + return sub1 - sub2; + } + public static double mul(String num1, String num2){ + double mul1 = Double.parseDouble(num1); + double mul2 = Double.parseDouble(num2); + return mul1 * mul2; + } + + public static double div(String num1, String num2){ + double div1 = Double.parseDouble(num1); + double div2 = Double.parseDouble(num2); + if (div2 == 0 || div1 == 0){ + print("cant divide by zero"); + print("error code:"); + return -1; + } + return div1 / div2; + } + public static String mulRound(String num1, String num2){ + double mul1 = Double.parseDouble(num1); + double mul2 = Double.parseDouble(num2); + return Math.round(mul1 * mul2) + "rounded"; + } + public static String divRemain(String num1, String num2){ + double div1 = Double.parseDouble(num1); + double div2 = Double.parseDouble(num2); + if (div2 == 0){ + print("cant divide by zero"); + print("error code:"); + return "-1"; + } + else if (div1 == 0) + return "0"; + else { + int div1I = (int) div1; + int div2I = (int) div2; + int divT = div1I / div2I; + return divT + " with remainder of: " + div1 % div2; + } + + } +} diff --git a/src/com/company/Main.java b/src/com/company/Main.java index 7cd15d3..fc52820 100644 --- a/src/com/company/Main.java +++ b/src/com/company/Main.java @@ -4,65 +4,50 @@ import java.util.Scanner; public class Main { @SuppressWarnings("InfiniteLoopStatement") - public static void main(String[] args) - { - while(true) { + public static void main(String[] args) { + double total = 0; + String num1; + String num2; + while (true) { Scanner in = new Scanner(System.in); - print("Enter first number: "); - String num1 = in.nextLine(); - print("please enter second number"); - String num2 = in.nextLine(); - print("Inputs complete"); - print("Please input operator"); - print("+ , - , * or x , /"); + System.out.println("Enter first number: "); + num1 = in.nextLine(); + if (num1.equals("ans") || num1.equals("total")) { + num1 = String.valueOf(total); + } + System.out.println("please enter second number"); + num2 = in.nextLine(); + if (num2.equals("ans") || num2.equals("total")) { + num2 = String.valueOf(total); + } + System.out.println("Inputs complete"); + System.out.println("Please input operator"); + System.out.println("+ , - , * or x , /"); + System.out.println("'for rounded multiplication: use '*r', 'Xr' or 'xr'"); + System.out.println("'for remainder division: use '/R' or '/r'"); String op = in.nextLine(); switch (op) { case "+" -> { - int total = add(num1, num2); + total = Calc.add(num1, num2); System.out.println(total); } case "-" -> { - int total = sub(num1, num2); + total = Calc.sub(num1, num2); System.out.println(total); } case "*", "x" -> { - int total = mul(num1, num2); + total = Calc.mul(num1, num2); System.out.println(total); } case "/" -> { - int total = div(num1, num2); + total = Calc.div(num1, num2); System.out.println(total); } - default -> print("Unexpected value: " + op + " ...restarting program"); + case "*/", "xR", "xr" -> System.out.println(Calc.mulRound(num1, num2)); + case "/R", "/r" -> System.out.println(Calc.divRemain(num1, num2)); + default -> System.out.println("Unexpected value: '" + op + "' ...restarting program"); } } } - private static void print(String text){ - System.out.println(text); - } - private static int add(String num1, String num2){ - int add1 = Integer.parseInt(num1); - int add2 = Integer.parseInt(num2); - return add1 + add2; - } - private static int sub(String num1, String num2){ - int sub1 = Integer.parseInt(num1); - int sub2 = Integer.parseInt(num2); - return sub1 - sub2; - } - private static int mul(String num1, String num2){ - int mul1 = Integer.parseInt(num1); - int mul2 = Integer.parseInt(num2); - return mul1 * mul2; - } - private static int div(String num1, String num2){ - int div1 = Integer.parseInt(num1); - int div2 = Integer.parseInt(num2); - if (div2 == 0 || div1 == 0){ - print("cant divide by zero"); - return -1; - } - return div1 / div2; - } } \ No newline at end of file