package calc;import com.sun.tools.corba.se.idl.constExpr.Equal;    //imports .equals(variable)import java.util.Scanner;    //imports scannerspublic class Calc {    public static void main(String[] args) {        boolean go = true;    //sets up loop        while(go)    //creates loop to top        {            System.out.println(Hello this is my calculator!);            System.out.println(To add, type a, to subtract, type s.);            System.out.println(To multiply, type m, to divide, type d.);            Scanner scan = new Scanner(System.in);    //sets up scanners            Scanner scan1 = new Scanner(System.in);            String action = scan.nextLine();    //tells comp. to take user input            if(a.equals(action))    //addition            {                System.out.println(Now type in the first number you would like to add.);                int add1 = scan.nextInt();                System.out.println(Now type the second number.);                int add2 = scan.nextInt();                int add3 = add1 + add2;                System.out.println(add1 +  added to  + add2 +  equals  + add3 + !);                      }            if(s.equals(action))    //subtraction            {                System.out.println(Now type in the first number you would like to subtract.);                int sub1 = scan.nextInt();                System.out.println(Now type the second number.);                int sub2 = scan.nextInt();                int sub3 = sub1 - sub2;                System.out.println(sub1 +  subtracted bye  + sub2 +  equals  + sub3 + !);             }            if(m.equals(action))    //multiplacation            {                System.out.println(Now type in the first number you would like to multiply.);                int mul1 = scan.nextInt();                System.out.println(Now type the second number.);                int mul2 = scan.nextInt();                int mul3 = mul1 * mul2;                System.out.println(mul1 +  multiplied bye  + mul2 +  equals  + mul3 + !);             }            if(d.equals(action))    //division            {                System.out.println(Now type in the first number you would like to divide.);                int div1 = scan.nextInt();                System.out.println(Now type the second number.);                int div2 = scan.nextInt();                int div3 = div1 / div2;                System.out.println(div1 +  divided bye  + div2 +  equals  + div3 + !);             }            System.out.println(Would you like to start over? (yes,no));                       String startOver = scan1.nextLine();            if(no.equals(startOver))            {                go = false;                System.out.println(Bye);            }        }    }                                  }Would it be possible to make this more compact?Does this code contain dead code?
Java console calculator
java;optimization;calculator
You do the same for all four choices - time to abstract!import java.util.Scanner;    //imports scannerspublic class Calc {    enum Op {        ADD(a, add, added to),        SUB(s, subtract, subtracted by),        MUL(m, multiply, multiplied by),        DIV(d, divide, divided by);        public String key;        public String command;        public String result;        Op(String key, String command, String result) {            this.key = key;            this.command = command;            this.result = result;        }        public int eval(int x, int y) {            switch (this) {                case ADD:                    return x + y;                case SUB:                    return x - y;                case MUL:                    return x * y;                case DIV:                    return x / y;                default:                    throw new AssertionError();            }        }    }    public static void main(String[] args) {        while (true) //creates loop to top        {            System.out.println(Hello this is my calculator!);            System.out.println(To add, type a, to subtract, type s.);            System.out.println(To multiply, type m, to divide, type d.);            Scanner scan = new Scanner(System.in);    //sets up scanners            Scanner scan1 = new Scanner(System.in);            String action = scan.nextLine();    //tells comp. to take user input            Op op = null;            for (Op operation : Op.values()) {                if (operation.key.equals(action)) {                    op = operation;                    break;                }            }            if (op != null) {                System.out.println(Now type in the first number you would like to  + op.command + .);                int x = scan.nextInt();                System.out.println(Now type the second number.);                int y = scan.nextInt();                int z = op.eval(x, y);                System.out.println(x +   + op.result +   + x +  equals  + z + !);            }            System.out.println(Would you like to start over? (yes,no));            String startOver = scan1.nextLine();            if (no.equals(startOver)) {                System.out.println(Bye);                return;            }        }    }}So all operation specific information is captured in the Op enums. If you want to add other operations like min, max, and, or, xor or mod, you don't have to introduce new if-blocks, just new enums.