package examples;


public class Operations {
    public static void main(String args[]) {
        parenthesesDemo();
        memberSelectionDemo();
        separationDemo();
        postIncrementDemo();
        postDecrementDemo();
        preIncrementDemo();
        preDecrementDemo();
        plusDemo();
        minusDemo();
        multiplicationDemo();
        divisionDemo();
        modulusDemo();
        additionDemo();
        subtractionDemo();
        equalsDemo();
        plusEqualsDemo();
        minusEqualsDemo();
        multiplyEqualsDemo();
        divideEqualsDemo();
        modulusEqualsDemo();
    }

    public static void parenthesesDemo() {
        int x = 4, y = 2, z = 1;
        hr();
        print("x = 4, y = 2, and z = 1"
                + "\nso when you calculate "
                + "x * (y + z)"
                + "the result is "
                + (x * (y + z)));
        print("x = 4, y = 2, and z = 1"
                + "\nso when you calculate"
                + " (x * y) + z the result is "
                + ((x * y) + z));
    }

    public static void memberSelectionDemo() {

        int x = 0;
        hr();
        print("if we call Math.cos(x) when x = 0 "
                + "using the member"
                + "selection\nwe can "
                + "invoke method "
                + "cos of the Math class, "
                + "the result is "
                + Math.cos(x));
    }

    public static void separationDemo() {
        int x = 4, y = 2;
        hr();
        print("if we call Math.pow(x,y) "
                + "when x = 4 "
                + "and y = 2 using the "
                + "separation"
                + "\nwe can invoke method "
                + "pow of the Math class,"
                + "the result is " + Math.pow(x, y));
    }

    public static void plusDemo() {
        int x = 4;
        hr();
        print("x = 4 but +x = "
                + (+x));
    }

    public static void minusDemo() {
        int x = 4;
        hr();
        print("x = 4 but -x = "
                + (-x));
    }

    public static void postIncrementDemo() {
        int x = 0;
        hr();
        print("x = 0 but x++ = "
                + x++);
        print("after x++, x = "
                + x);
    }

    public static void postDecrementDemo() {
        int x = 0;
        hr();
        print("x = 0 but x-- = "
                + x--);
        print("after x--, x = "
                + x);
    }

    public static void preIncrementDemo() {
        int x = 0;
        hr();
        print("x = 0 but ++x = "
                + ++x);
        print("after ++x, x = "
                + x);
    }

    public static void preDecrementDemo() {
        int x = 0;
        hr();
        print("x = 0 but --x = "
                + --x);
        print("after --x, x = "
                + x);
    }

    public static void additionDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2"
                + "\nso x + y = "
                + (x + y));
    }

    public static void subtractionDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2"
                + "\nso x - y = "
                + (x - y));
    }

    public static void multiplicationDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2\nso x * y = "
                + (x * y));
    }

    public static void divisionDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2\nso x / y = "
                + (x / y));
    }

    public static void modulusDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2"
                + "\nso x % y = " + (x % y));
    }

    public static void equalsDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4, y = 2\nso x = y "
                + "makes x equal to "
                + (x = y));
    }

    public static void plusEqualsDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2\nso x += y makes"
                + "x equal to " + (x += y));
    }

    public static void minusEqualsDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2"
                + "\nso x -= y "
                + "makes x equal to "
                + (x -= y));
    }

    public static void multiplyEqualsDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2"
                + "\nso x *= y makes "
                + "x equal to "
                + (x *= y));
    }

    public static void divideEqualsDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2"
                + "\nso x /= y makes x equal to "
                + (x /= y));
    }

    public static void modulusEqualsDemo() {
        int x = 4, y = 2;
        hr();
        print("x = 4 and y = 2\n"
                + "so x %= y makes x equal to "
                + (x %= y));
    }

    public static void hr() {
        print("____________________________");
    }

    public static void print(Object o) {
        System.out.println(o);
    }
}