JAVA/java 실습

[자바JAVA] 연산자 - 증감연산자, 전위 증감연산자, 후위 증감연산자

자바칩 프라푸치노 2020. 9. 15. 08:00

안녕하세요 자바칩 프라푸치노입니다.

오늘은 단항 연산자인 증감연산자에 대한 실습을 한번 해보겠습니다.

이론이 궁금하신 분들은 아래의 글을 보고 와주세요!

2020/09/14 - [§개발자 되기 프로젝트§/java 이론] - [자바 JAVA]연산자 - 연산자의 종류, 증감,부호,논리, 비트, 쉬프트, 비교, 삼항, 대입연산자

 

 

 

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
37
38
39
40
41
42
43
package sec01_exam;
 
public class IncDecOpEx {
 
    public static void main(String[] args) {
        
    int x = 10;
    int y = 10;
    
    System.out.println("----------------------------------");
    System.out.println("x= " + (x++)); 
    x++;
    System.out.println("x = " + (++x));
  
        
    System.out.println("----------------------------------");
    System.out.println("y= " + (y++));  
    --y;
    System.out.println("y= " + (--y));
        
    System.out.println("----------------------------------");
    int z = x++;
    System.out.println("z =" + z);
    System.out.println("x =" + x);
    
    System.out.println("----------------------------------");
    z = ++x;
    System.out.println("z =" + z);
    System.out.println("x =" + x);
    
    System.out.println("----------------------------------");
    z = (++x) + (y++);
    System.out.println("z =" + z);  
    System.out.println("x =" + x);
    System.out.println("y =" + y); 
    
    }
 
}
 
cs

이렇게 한 번 해보겠습니다.

값을 예상해봅시다.

 

여기서 보시면 x와 y는 둘다 10입니다.

1번 줄에서 에서 x에 후위 증가를 했네요. 

그럼 1번줄에서 출력할때는 10으로 나오고 그 뒤, 2번 줄에서는 11로 바껴있습니다.

그리고 또 2번 줄에서 후위증가를 했네요.

그러면 2번 줄에서는 11이 되었다가 그 다음 3번 줄에서 12가 됩니다.

3번 줄에서는 전위증가를 했네요!

그러면 세미콜론을 만나기 전에 바뀌니까 13이 되었습니다.

y는 10 이었는데 1번에서 후위증가를 했으니 1번에서는 10으로 출력되고

2번에서 11이 되었네요.

2번에서 전위감소를 했으니 다시 10이 되었구요

3번에서 전위감소를 했으니 9가 되었습니다.

 

위에서 x는 13이었죠.

그래서 z는 아직 13으로 출력이 되구요

x는 한번 참조를 했으니 14가 되었습니다.

 

x는 전위증가를 해서 14에서 15가 되어서 z도 15가 되구요 

둘다 같은 갚이 나옵니다.

 

마지막으로 

x는 전위증가로 16이 되고 y는 후위증가로 아직 9인 상태에서 z에 들어가므로 25가 됩니다.

z는 25

x는 16

y는 10 이 되겠네요

 

콘솔창 확인해봅시다.

이렇게 나왔습니다.

처음에는 이해가 안되고 어려울 수 있지만

찬찬히 생각하다보면 쉬울거에요

감사합니다 *^^* 

728x90