티스토리 뷰

증감 연산자(++, --)

피연산자의 값을 1을 더하거나 1을 빼는 연산자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class OperatorTest {
    public static void main(String[] args) {
        
        //증감문 전위형 후위형에 대하여
        int i = 0, j = 0, k = 0;
        
        //1.증감 연산자에는 전위형, 후위형이 있는데 단독으로 쓰일 경우에는 두 값이 1이 증가한다는데는 차이가 없다
        //전위형 같은 경우에는 먼저 변수값을 증가하거나 감소시키기 때문에 문제가 없다
        i++;
        ++j;
        System.out.println("변수 i 의 값 >>> "+i);
        System.out.println("변수 j의 값 >>> "+j);
        
        
        //2. 하지만 메서드 호출시에 인자로서 후위형 증감문 사용 시 우선 기존 k값을 넘겨주고 그 다음에 값이 증가한다. 
        int returnVersion = returnTest(k++);
        System.out.println("returnVersion 변수값 >>> "+returnVersion+", 함수를 호출하고 난뒤의 k변수 값 >>> "+k);
        
        k = 0;
        //3. 연산시에도 마찬가지 i는 값을 먼저 증가시키기 때문에 상관없지만 j같은 경우에는 i와 먼저 더해진 후에 값을 증가시킨다.
        //그렇기 때문에 i=2,j=1인 상태로 더해지기 때문에 k값은 3이 된다.
        k = (++i) + (j++);
        System.out.println("k = (++i) + (j++) 연산 후 k값 >>> "+k);
        
        System.out.println("i = "+i+", k = "+j);
        
    }
    
    
    
    static int returnTest(int version) {
        System.out.println("함수안에서의 값>>>"+version);
        return version;
    }
    
}
cs
1
2
3
4
5
6
변수 i 의 값 >>> 1
변수 j의 값 >>> 1
함수안에서의 값>>>0
returnVersion 변수값 >>> 0, 함수를 호출하고 난뒤의 k변수 값 >>> 1
= (++i) + (j++) 연산 후 k값 >>> 3
= 2, k = 2
cs

 

 

 

 

부호 연산자(+, -)

부호 연산자는 피연산자의 부호를 변경하는데 사용된다.

1
2
3
4
5
6
7
8
int a = 2;
 
= -a;
 
int b = 2;
 
= +b;
 
cs

-부호 연산자는 피연산자에 -1곱한 결과를, +부호 연산자는 +1곱한 결과를 반환한다.

그러므로 a의 값은 -2가 되고, b의 값은 그대로 2가 된다.

 

 

 

 

 

비트 연산자 (&, |, ^)

비트 연산자는 두 피연산자의 결과에 따라 1이나 0을 반환한다.

 

& 연산자는 두 피연산자의 값이 1일 때 1을 반환하고 아니면 0을 반환.

| 연산자는 두 피연산자의 값중에 하나라도 1일 때 1을 반환하고 아니면 0을 반환.

^ 연산자는 두 피연사자의 값이 반대되는 값일 때 1을 반환하고 나머지는 0을 반환.

피연산자1 피연산자2 & | ^
1 1 1 1 0
1 0 0 1 1
0 0 0 0 0

 

 

 

 

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

java enum 열거형  (0) 2014.01.22
HashSet, TreeSet  (0) 2014.01.21
[Collection Framework] ArrayList, LinkedList  (0) 2014.01.16
Exception 예외처리  (0) 2013.12.30
2진수, 10진수, 8진수, 16진수 진수 변환  (0) 2013.12.17
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday