본문 바로가기

공부합시다

[JAVA] [연산자2] 단항연산자, 삼항연산자

연산자 중에서는 일반적으로 두개의 피연산자를 필요로 하는데, 한개 또는 세개의 피연산자를 필요로 하는 경우도 있다. 이를 각각 단항연산자, 삼항연산자라고 한다.


단항 연산자

+ : 단항 플러스 연산자 (Unary plus operator)

- : 단항 마이너스 연산자 (Unary minus operator)

++ : 증가 연산자 (Increment operator)

-- : 감소 연산자 (Decrement operator)

! : 논리 부정 연산자 (Logical Complement operator)


예제소스1>


여기서 +는 "변수 * (+1)"을 의미하고, -는 "변수 * (-1)"를 의미한다.

사실, 단항 플로스 연산자는 왜 사용하는지는 모르겠으나.. 일단 고런게 있는 걸로만 알아달라..^^


예제소스2>




증가 연산자와 감소 연산자의 예제 인데.. 둘다 1만큰 증가 또는 감소 한다는 개념은 동일하지만..  이 둘은 특이하게 변수의 앞에서도 사용할 수 있고 뒤에서도 사용이 가능한다. 그러나 그 값은 앞에서 사용할 경우와 뒤에서 사용할 경우가 서로 다르다.

예제를 보고 잘 이해하길 바란다.




마지막으로 단항 연산자 중 논리부정 연산자는 말그대로 참값을 거짓으로, 거짓값을 참 값으로 바꾸는 연산자이므로.. boolean타입의 변수에만 사용한다.





삼항연산자


예제3> 두 수 중 큰 값을 찾는 것! 그리고 차이 값(절대값)을 구하는 문제, 삼항연산자


CondOp 이라는 클래스를 만들고..

int 변수 i, j를 선언한다. 50을 변수 i 에 넣어주고, 100을 j에 넣어준다.

이때, 둘 줄 큰 값을 구하기 위해 삼항연산나 ? : 를 사용한다.

삼항연산자는...


변수 = (boolean 조건식) ? true 일 때 값 : false 일 때 값


즉, i가 j보다 크면 i값을 big에 넣고, 작으면 j값을 big에 넣어라는 말!

그래서 big을 출력하면 둘중에 큰 값이 출력 됨!


두번째 diff 역시.. i가 j보다 크면 i에서 j를 빼고, j가 더 크면 j에서 i를 빼서 절대값(두값의 차)를 구할 수 있음.



예제소스>


class CondOp 

{

public static void main(String[] args) 

{

int i = 50, j = 100;

int big, diff;


big = (i > j) ? i : j; //i가 j보다 크다는 조건에서 참일 때는 i값을 거짓일 때는 j 값을 big값에 넣는다

System.out.println(big);


diff  = (i > j) ? i-j : j-i;

System.out.println(diff);

}

}