본문 바로가기

Java

연산자 (= + - * / %) 의 종류와 활용

연산자
특정 값이나 다른 변수의 결과를 할당(대입)한다.

대입연산자 =
부호 연산자 + -
산술 연산자 + - * /
증감 연산자 ++ --

 

부호연산자

package ch02;

public class Operation1 {

    /*
    부호 연산자 + -
    단항 연산자라고도 한다.
    부호 연산자는 사용하는 부호를 변경할 뿐
    실제 값이 변경되는 것은 아니다.
     */
    //entry
    public static void main(String[] args) {

        int intData = 1000;
        System.out.println("양수값: " + +intData);
        System.out.println("음수값: " + -intData);

        System.out.println(intData);
        // 변수의 값에는 변화가 없는 것을 확인할 수 있다.

        // 만약 실제 값을 변경하려면 어떻게 해야 할까?
        // 메모리 공간 안에 있는 실제 값을 변경해야 한다.
        // 대입 연산자 =

        intData = -intData;
        // 변수 값 자체가 변화한 것을 확인할 수 있다.

        System.out.println(intData);

        /*
        절대값
        어떤 수의 크기를 나타내는 것
        그 수가 0에서 얼마나 떨어져있는지를 보여준다.
        양수이든 음수이든 항상 양수로 표시된다.
         */

        // 연습
        int oneStepDistance = 1;
        final int ZERO_POINT = 0;
        int currentPosition = 0;

        // 제로 포인트에서 왼쪽으로 3칸 이동한 값을 출력하시오

        currentPosition = ZERO_POINT - (oneStepDistance * 3);
        System.out.println(currentPosition);

        /*
        절대값으로 구하려면?
        자바에서는 풍부한 추가기능을 제공하고 있다.
        자바 개발자들이 수학 관련 식들을 준비해뒀다.
        Math.abs()
        절대값 구하는 기능이다.
         */

        System.out.println("절대값: " + Math.abs(currentPosition));

    } // end of main
}

 

산술연산자

package ch02;

public class Operator1 {

    /*
    산술연산자 + - * /
     */

    // entry
    public static void main(String[] args) {

        int a = 5;
        int b = 2;

        // 덧셈
        int sum = a + b;
        System.out.println("a + b = " + sum);

        // 뺄셈
        int diff = a - b;
        System.out.println("a - b = " + diff);

        // 곱셈
        int multi = a * b;
        System.out.println("a * b = " + multi);

        // 나눗셈
//        double div = a / b;
//        System.out.println("a / b = " + div);
        // div = 2
        // 데이터 손실이 발생했다.
        // 나눗셈을 계산할 때는 실수로 계산해야 정확한 결과 값이 나온다.
        // ----div = 실수 / 실수
        // double div = 5.0 / 2.0;
        // double div = (double)a / (double)b;

        //한편 두 항중에 하나라도 실수면 연산의 결과도 실수도 처리된다.

        double div = a / (double)b;
        System.out.println("a / b = " + div);

        // 나머지
        double mod = (double)a % b;
        System.out.println("a % b = " + mod);

        // 연습
        // (12 + 3) / 3 의 값을 구하라
        System.out.println((12 + 3) / (double)3);

        // 연습
        // (25 % 2) 의 값을 구하라
        System.out.println(25 % 2); // 1 홀수로 판별
        System.out.println(26 % 2); // 0 짝수로 판별
        System.out.println(27 % 2); // 1 홀수로 판별

        // 한편 어떤 수를 2로 나누었을 때
        // 나머지가 0이면 짝수로 판별 가능하다.

    } // end of class
}

 

상수

자료형

산술연산자

활용한 응용문제

package exercise;

public class Exercise4 {

    // entry
    public static void main(String[] args) {

        /*
        원래 가격은 59.99$
        30% 할인을 적용
        최종가격을 계산해 소수점 이하는 버린다.

        상수 선언
        final double ORIGIN_PRICE = 59.99;
        final double DISCOUNT_RATE = 0.30;
        ---------최종가격 = 원가 * (1 - 할인율)
        int discountPrice = ORIGIN_PRICE (1 - DISCOUNT_RATE);
        System.out.println(discountPrice);
         */

        final double PRICE_OLD = 59.99;
        final double DISCOUNT = 0.3;
        int price_new = (int)(PRICE_OLD * (1 - DISCOUNT));
        System.out.println("최종가격은: " + price_new); // 41

    } // end of main
}// end
package exercise;

public class RectangleAreaCalculaor {

    // entry
    public static void main(String[] args) {

        /*
        사각형의 면적을 구하라
        상수를 선언할 것

        주석을 작성하는 습관을 들이면 좋다.
        사각형의 가로길이, 세로길이를 선언
        final int WIDTH = 10;
        final int HEIGHT = 5;
        면적 area = 가로길이 * 세로길이
        int area = WIDTH * HEIGHT;
         */

        final int DATA_X = 5;
        final int DATA_Y = 10;

        int area = DATA_X * DATA_Y;

        System.out.println("사각형의 면적: " + area); // 50

    } // end of main
} // end
package exercise;

public class TriangleAreaCalculator {

    // entry
    public static void main(String[] args) {

        /*
        삼각형의 면적을 구하는 코드를 작성해보자
        area = WIDTH * HEIGHT / 2
         */

        final double BASE = 10.0; // R value / 값 / 리터럴
        final double HEIGHT = 5.0;

        double area = ( BASE * HEIGHT ) / 2;

        System.out.println("삼각형의 면적은: " + area);

    } // end of main
} // end

 

증감연산자

package ch02;

public class Operator2 {
    /*
    증감 연산자 ++ --
    변수에 접근해서 그 값을 오직 1 증가(감소)시킨다.
     */
    // entry
    public static void main(String[] args) {

        int a = 1;
        a++; // 오직 1을 증가시킨다.
        System.out.println("a: " + a); // a = 2

        int b = 1;
        b--; // 오직 1을 감소시킨다.
        System.out.println("b: " + b); // b = 0

        /*
        감소 연산자를 앞에 사용하면 전위 감소 연산자
        감소 연산자를 뒤에 사용하면 후위 감소 연산자
        세미콜론 ; 기준으로
        즉 문장의 끝 기준으로
        연산의 시점이 달라진다.
         */

        int c = 100;
        System.out.println(c--); // c = 100
        System.out.println(c); // c = 99
        System.out.println(--c); // c = 98

    } // end of main
}

 

'Java' 카테고리의 다른 글

반복문 for  (0) 2025.04.14
자료의 형 변환 - 강제형변환  (0) 2025.04.10
명령프롬프트를 통한 자바 실행 방법  (0) 2025.04.10
데이터타입 - 논리형  (0) 2025.04.10
데이터타입 - 실수형  (0) 2025.04.10