자바(Java) 프로그래밍, 연산자 이야기 Part. 1 기본 연산자

반응형
    728x90
    반응형

    기본 연산자

    1. 항과 연산자

    연산자 설 명 예시
    단항 연산자 항이 한 개인 연산자 ++num
    이항 연산자 항이 두 개인 연산자 num1 + num2;
    삼항 연산자 항이 세 개인 연산자 (3>2) ? 1: 0;

     

    2. 대입 연산자

    int year = 2024;

    프로그래밍 언어에서 = 는 대입 연산자 라고 한다.

    수학에서 쓰이는 =는 '같다' 라는 의미이지만

    프로그래밍 언어에서는 오른쪽의 값을 왼쪽의 변수명에 저장한다 라는

    의미로 생각하면 된다.

     

    3. 부호 연산자

    부  호 기  능 예시
    + 변수나 상수 값을 양수로 만든다 +10
    - 변수나 상수 값을 음수로 만든다 -10

     

    4. 산술 연산자

    연산자 기   능 예시
    + : 더하기 두 항을 더한다 3 + 2
    - : 빼기 앞 항에서 뒤 항을 뺀다 3 - 2
    * : 곱하기 두 항을 곱한다 3 * 2
    / : 몫 앞 항에서 뒤 항을 나눈 몫을 구한다 3 / 2
    % : 나머지 앞 항에서 뒤 항을 나눈 나머지를 구한다 3 % 2

     

    5. 증가, 감소 연산자

    연산자 기   능 예시
    ++ 항의 값에 1을 다한다 val = ++num; // num 값에 1을 더한 값을 val에 대입
    val = num++; // val 변수에 num을 대입한 후 num 값 1 증가
    -- 항의 값에 1을 뺀다 val = --num; // num 값에서 1을 뺀 후 val에 대입
    val = num--; // val 변수에 num을 대입한 수 num 값 1 감소

    증가, 감소 연산자는 단항 연산자 이다.

    연산자를 피 연산자 앞에 쓰는 경우와

    뒤에쓰는 경우 그 결과값이 전혀 다르므로 주의 해야한다.

    5 - 1 증가, 감소 연산자의 위치

    int value = 10;
    int num = ++value; //num에 11이 대입됨
    int value = 10;
    int num = value++; //num 값은 10이 대입됨

    6. 관계 연산자

    연산자 기   능 예  시
    > 왼쪽 항이 크면 true, 아니면 false 반환 num > 5;
    < 왼쪽 항이 작으면 true, 아니면 false 반환 num < 5;
    >= 왼쪽 항이 오른쪽 항보다 크거나 같으면 true, 아니면 false 반환 num >= 5;
    <= 왼쪽 항이 오른쪽 항보다 작거나 같으면 true, 아니면 false 반환 num <= 5;
    == 두 항이 같으면 true, 아니면 false 반환 num == 5;
    != 두 항이 다르면 true, 아니면 false 반환 num != 5;

     

    7. 논리 연산자

    연산자 기   능 예   시
    $$(논리 곱) 두 항이 모두 참인 경우에만 참 boolean val = (5>3) && (5 > 2);
    ||(논리 합) 두 항중 하나의 항만 참이면 참 boolean val = (5>3) || (5 < 2);
    !(부정) 단항 연산자. 참인 경우 거짓으로바꾸고 거짓인 경우 참으로 바꾼다. boolean val = !(5>3);

    7-1. 모든 항이 실행되지 않는 경우 - 단락 회로 평가

    package operator;
    
    public class OperatorEx3 {
    
    	public static void main(String[] args) {
    		int num1 = 10;
    		int i =2;
    		
    		boolean value = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10);
    		System.out.println(value);
    		System.out.println(num1);
    		System.out.println(i);
    		
    		value = ((num1 = num1 + 10) > 10) || ((i = i + 2) < 10);
    		System.out.println(value);
    		System.out.println(num1);
    		System.out.println(i);
    	}
    
    }

    출력 결과

    출력 결과

    value = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10);

    위 코드에서 왼쪽 항이 논리 곱으로 에서 거짓이기 때문에 false 출력되고

    앞 항만 실행되어 20출력, 뒷 항은 실행 되지 않아 2 출력

    value = ((num1 = num1 + 10) > 10) || ((i = i + 2) < 10);

    위 코드에서 왼쪽 항이 논리 합에서 앞 항이 참이라 true 출력

    앞 항만 실행되어 30출력, 뒷 항은 실행 되지 않아 2 출력

    8. 복합 대입 연산자

    연산자 기   능 예  시
    += 두 항의 값을 더해서 왼쪽 항에 대입 num1+=2;
    num1 = num1 + 2;와 같은 의미
    -= 왼쪽 항에서 오른쪽 항을 뺀 후 값은 왼쪽 항에 대입 num1-=2;
    num1 = num1 - 2;와 같은 의미
    *= 두 항의 값을 곱해서 왼쪽 항에 대입 num1*=2;
    num1 = num1 * 2;와 같은 의미
    /= 왼쪽 항을 오른쪽 항으로 나누고 몫에 해당하는 값을 왼쪽 항에 대입 num1/=2;
    num1 = num1 / 2;와 같은 의미
    %= 왼쪽 항을 오른쪽 항으로 나누고 나머지에 해당하는 값을 왼쪽 항에 대입 num1%=2;
    num1 = num1 % 2;와 같은 의미
    연산자 기   능 예   시
    <<= 비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입 num1 <<= 2;
    num1 = num1 << 2;와 같은 의미
    >>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽항에 대입
    *왼쪽에 채워지는 비트 값은 부호 비트와 동일
    num1 >>= 2;
    num1 = num1  2>>;와 같은 의미
    >>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽항에 대입
    *왼쪽에 채워지는 비트 값은 0
    num1 >>>= 2;
    num1 = num1 >>> 2;와 같은 의미
    &= 두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입 num1 &= 2;
    num1 = num1 & 2;와 같은 의미
    |= 두 항의 | 비트 연산 후 그 값을 왼쪽 항에 대입 num1 |= 2;
    num1 = num1 | 2;와 같은 의미
    ^= 두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입 num1 ^= 2;
    num1 = num1 ^ 2;와 같은 의미

     

    9. 조건 연산자

    연산자 기   능 예   시
    조건식 ? 결과1 : 결과2; 조건식이 참이면ㄱ결과1, 거짓이면 결과2 선택 int num = (5>3) ? 10:20;
    728x90
    반응형

    댓글

    Designed by JB FACTORY