増減演算子


package operator;

public class Ex4 {

	public static void main(String[] args) {
		
		/*
		 * 증감 연산자
		 * ++, --
		 * 
		 */
		
		int a = 10;
		++a; // 증감연산자(전위)를 사용하여 a값을 1만큼 증가시킴
		System.out.println(a);
		// => a값을 1만큼 증가시키는 다른 방법 : a = a + 1 또는 a += 1
		
		// 증감연산자(후위)를 사용하여 a값을 1만큼 증가시킴
		a++;
		System.out.println(a);
		
		--a; // 증감연산자를 사용하여 a값을 1만큼 감소시킴
		System.out.println(a);
		
		a--; // 증감연산자를 사용하여 a값을 1만큼 감소시킴
		System.out.println(a);
		
		System.out.println("================================");
		
		int x = 5;
		int y = ++x; // 전위(선행)연산자로 사용되는 증감연산자
		// 먼저 x의 값을 1만큼 증가시킨 후 변수 y에 x값을 대입!
		// 따라서, x가 5 -> 6으로 변화된 후 y에 저장되므로 y도 6이 저장
		System.out.println(x + ", " + y); // 6, 6
		
		int x2 = 5;
		int y2 = x2++; // 후위(후행)연산자로 사용되는 증감연산자
		// 먼저 x2의 값을 y2에 대입한 뒤, x2의 값을 1만큼 증가시킴
		// 따라서, x2가 5일 때 y2에 저장되고,
		// 그 후 x2의 값이 5 -> 6으로 증가
		System.out.println(x2 + ", " + y2); // 6, 5
		
		int i = 5;
		int j = ++i;
		// => 선행연산자이므로 i값을 1증가시킨 후 j에 저장(i = 6, j = 6)
		System.out.println(j++);
		// 후행연산자이므로 j값을 출력한 후, 1증가시킴
		// => 6이 출력된 후, j값은 6 -> 7로 증가됨
		System.out.println(--j);
		// 선행연산자이므로 j값을 1 감소시킨 후, 출력
		// => j값은 7 -> 6으로 감소된 후 6이 출력됨
		
		System.out.println("===================================");
		
		char ch = 'A';
		
		// char 타입 변수 ch의 값을 1만큼 증가시키는 방법 3가지
		// 1. 기본 산술연산자와 대입연산자를 조합하여 사용
		ch = (char) (ch + 1); // 반드시 강제형변환 필수!
		System.out.println(ch);
		
		// 2. 확장 연산자를 사용
		ch += 1; // 별도의 형변환 필요 없음
		System.out.println(ch);
		
		// 3. 증감연산자를 사용
		ch++; // 별도의 형변환 필요 없음!
		System.out.println(ch);
		
		System.out.println("=================================");
		
		int x4 = 10;
		
		int y4 = x4-- + 5 + --x4;
		
		System.out.println("x : " + x4 + ", y : " + y4);
		
	}

}