본문 바로가기
Programming/JAVA

4-2 자바에서 제공하는 단항 연산자들

by CGS 2018. 8. 27.

+, -는 이항 연산자로써 덧셈과 뺄셈의 기능을 제공합니다.


하지만 우리가 수학시간에 많이 사용했듯, 부호연산자로써 음수와 양수를 표현하는데 사용되기도 합니다.



public class UnaryAddMin {


public static void main(String[] args) {

// TODO Auto-generated method stub

int n1 = 5;

System.out.println(+n1);

System.out.println(-n1);

short n2 = 7;

int n3 = +n2;

int n4 = -n2;

System.out.println(n3);

System.out.println(n4);

}


}




5

-5

7

-7



-는 음수를 표현해주고, +는 굳이 없어도 양수로 표현을 해줍니다.

증가, 감소 연산자라는게 있습니다. prefix 연산자라고 합니다.

연산자

연산자의 기능 

결합방향 

++

(prefix) 

피연산자에 저장된 값을 1 증가

ex)val = ++n; 

<- 

--

(prefix) 

피연산자에 저장된 값을 1 감소

ex)val = --n; 

<- 


왜 prefix 접두사가 붙냐면, 피연산자의 앞부분에 붙는 연산자이기 때문입니다.




import java.util.concurrent.SynchronousQueue;


public class PrefixOp {


public static void main(String[] args) {

// TODO Auto-generated method stub

int num1 = 7;

int num2, num3;

num2 = ++num1; //num1은 8이 됩니다.

num3 = --num1; //num1은 다시 7이 됩니다.

System.out.println(num1);

System.out.println(num2);

System.out.println(num3);

}


}


7

8

7


++ 연산 이후에 num1이 8로 증가되고 num2에 저장됩니다. 그리고 -- 연산 이후에 num1이 7로 감소하고 num3에 저장이 되어  7, 8, 7 이라는 결과가 나왔습니다.


postfix 연산자도 있습니다. prefix와는 반대로 접미사로, 피연산자의 뒤에 붙습니다.


 연산자

연산자의 기능 

결합방향 

++

(postfix) 

피연산자에 저장된 값을 1 증가

ex) val = n++; 

<- 

 --

(postfix)

피연산자에 저장된 값을 1 감소

ex) val = n--; 

<- 



public class PostfixOp {


public static void main(String[] args) {

// TODO Auto-generated method stub

int num1 = 7;

int num2, num3;

num2 = num1++;

num3 = num1--;

System.out.println(num1);

System.out.println(num2);

System.out.println(num3);

}


}




7

7

8


prefix 와 같이 생각해보면 7,8,7이 될 것 같지만


7 7 8이 나왔습니다.


prefix는 증가 이후에 값을 대입하고 postfix는 증가 이전에 값을 대입하기 때문입니다.




public class PostfixUst {


public static void main(String[] args) {

// TODO Auto-generated method stub

int num1=7, num2;

num2 = (num1--) + 5;

System.out.println("num1 : "+num1);

System.out.println("num2 : "+num2);

}


}



num1 : 6

num2 : 12



괄호를 치더라도 6+5가 아닌 7+5의 연산이 이루어졌음을 알 수 있습니다.

연산 이후 num1은 1이 감소해서 6으로 출력이 되었고, num2는 12로 출력이 되었습니다.

prefix와 postfix는 각각 전위 증가 연산자, 후위 증가 연산자 라고도 합니다.


'Programming > JAVA' 카테고리의 다른 글

5-1 if~else  (0) 2018.09.16
4-3 비트와 관련이 있는 연산자  (0) 2018.08.27
4-1 자바에서 제공하는 이항 연산자들  (0) 2018.08.26
3-2 자료형의 변환  (0) 2018.08.26
3-1 상수  (0) 2018.08.21