λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Language/Java

[Java]μžλ°” λΆ€ν˜Έ 및 증감 μ—°μ‚°μž ν™œμš©

by YJ Dev 2024. 4. 26.
728x90
λ°˜μ‘ν˜•
SMALL

λ³€μˆ˜μ˜ 값을 μ‘°μž‘ν•˜κ³  μ œμ–΄ν•˜λŠ”λ° 핡심적인 역할을 ν•˜λŠ” μžλ°” λΆ€ν˜Έ 및 증감 μ—°μ‚°μžλŠ” 맀우 μœ μš©ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μžλ°” μ—°μ‚°μžλ“€μ„ 효과적으둜 ν™œμš©ν•˜μ—¬ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  μ΄ν•΄ν•˜λŠ” 것은 μ€‘μš”ν•©λ‹ˆλ‹€.

λΆ€ν˜Έ μ¦κ°μ—°μ‚°μž


1. λΆ€ν˜Έ μ—°μ‚°μžβž•βž–

λΆ€ν˜Έ μ—°μ‚°μžλŠ” 숫자의 λΆ€ν˜Έλ₯Ό λ°”κΏ”μ£ΌλŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ–‘μˆ˜λ₯Ό 음수둜 λ³€ν™˜ν•˜κ±°λ‚˜ 음수λ₯Ό μ–‘μˆ˜λ‘œ λ³€ν™˜ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. 예λ₯Ό 톡해 λΆ€ν˜Έ μ—°μ‚°μžμ˜ μ‚¬μš©λ²•μ„ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

byte number = 10;
int negatedNumber = -number; // μ–‘μˆ˜λ₯Ό 음수둜 λ³€ν™˜
System.out.println("Negated number: " + negatedNumber); // 좜λ ₯: -10

λΆ€ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  λ•Œ μ£Όμ˜ν•΄μ•Ό ν•  점은 두 가지가 μžˆμŠ΅λ‹ˆλ‹€.

첫째둜, λ³€μˆ˜μ˜ κ°’ μžμ²΄λŠ” λΆ€ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λΆ€ν˜Έ μ—°μ‚°μžλŠ” 숫자의 λΆ€ν˜Έλ₯Ό λ°”κΎΈλŠ” μ—­ν• λ§Œ μˆ˜ν–‰ν•˜λ©°, λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값을 ν• λ‹Ήν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‘˜μ§Έλ‘œ, λΆ€ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œ ν›„μ—λŠ” 데이터 νƒ€μž…μ˜ 변화에도 μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. μœ„ μ½”λ“œμ—μ„œ λ³€μˆ˜ numberκ°€ byte νƒ€μž…μ΄λΌκ³  ν•  λ•Œ, - μ—°μ‚°μžμ— μ˜ν•΄ λΆ€ν˜Έλ₯Ό λ°”κΎΌ 값은 int νƒ€μž…μœΌλ‘œ μžλ™ ν˜• λ³€ν™˜λ©λ‹ˆλ‹€. 이 경우, μƒˆλ‘œμš΄ 값은 더 큰 데이터 νƒ€μž…μ„ κ°€μ§€κ²Œ 되며, μ΄λŸ¬ν•œ 변화에 μœ μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ§Œμ•½ μ—°μ‚° κ²°κ³Όλ₯Ό μ›λž˜μ˜ μž‘μ€ 데이터 νƒ€μž…μ— λ‹€μ‹œ ν• λ‹Ήν•΄μ•Ό ν•œλ‹€λ©΄, λͺ…μ‹œμ μΈ ν˜•(κ°•μ œ ν˜• λ³€ν™˜) λ³€ν™˜μ„ ν•΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.
πŸ”½ πŸ”½ πŸ”½ κ°•μ œ ν˜• λ³€ν™˜μ— λŒ€ν•œ λ‚΄μš©μ€ μ•„λž˜ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•΄ μ£Όμ„Έμš”πŸ”½ πŸ”½ πŸ”½

" "

[Java]μžλ°”μ—μ„œμ˜ ν˜• λ³€ν™˜: μžλ™ λ³€ν™˜κ³Ό κ°•μ œ λ³€ν™˜

λͺ©μ°¨1. μžλ™ ν˜• λ³€ν™˜2. κ°•μ œ ν˜• λ³€ν™˜3. μ—°μ‚°μ‹μ—μ„œμ˜ ν˜• λ³€ν™˜4. λ¬Έμžμ—΄μ„ κΈ°λ³Έ νƒ€μž…μœΌλ‘œ λ³€ν™˜5. 핡심 λ‚΄μš©μžλ°”μ—μ„œ ν˜• λ³€ν™˜μ€ λ°μ΄ν„°μ˜ νƒ€μž…μ„ λ³€ν™˜ν•˜λŠ” 과정을 λ§ν•©λ‹ˆλ‹€. μ΄λŠ” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 쀑

creativevista.tistory.com


2. 증감 μ—°μ‚°μžβž•βž•βž–βž–

증감 μ—°μ‚°μžμ—λŠ” μ „μΉ˜ 증감 μ—°μ‚°μžμ™€ ν›„μΉ˜ 증감 μ—°μ‚°μžκ°€ μžˆμŠ΅λ‹ˆλ‹€.
μ „μΉ˜μ—°μ‚°μžλŠ” λ³€μˆ˜μ˜ 값을 λ¨Όμ € 1 증가 λ˜λŠ” 1 κ°μ†Œμ‹œν‚¨ 후에 ν•΄λ‹Ή 값을 μ‚¬μš©ν•©λ‹ˆλ‹€.
ν›„μΉ˜μ—°μ‚°μžλŠ” λ³€μˆ˜μ˜ 값을 λ¨Όμ € μ‚¬μš©ν•œ 후에 κ·Έ 값을 1 증가 λ˜λŠ” 1 κ°μ†Œμ‹œν‚΅λ‹ˆλ‹€.

public class IncreaseDecreaseOperatorExample {

    public static void main(String[] args) { 
        int x = 10;
        int y = 10;
        int z;
        
        x++;
        ++x; // x 값을 1 μ¦κ°€μ‹œν‚¨ ν›„ 좜λ ₯
        System.out.println("x = "+ x); // 좜λ ₯: x = 12
        
        System.out.println("-----------------------");
        y--;
        --y; // y 값을 1 κ°μ†Œμ‹œν‚¨ ν›„ 좜λ ₯
        System.out.println("y = " + y); // 좜λ ₯: y = 8
        
        System.out.println("-----------------------");
        z = x++; // x 값을 z에 λŒ€μž… ν›„ xλ₯Ό 1 μ¦κ°€μ‹œν‚΄
        System.out.println("z = " + z); // 좜λ ₯: z = 12
        System.out.println("x = " + x); // 좜λ ₯: x = 13
        
        System.out.println("-----------------------");
        z = ++x; // xλ₯Ό 1 μ¦κ°€μ‹œν‚¨ ν›„ κ·Έ 값을 z에 λŒ€μž…
        System.out.println("z = " + z); // 좜λ ₯: z = 14
        System.out.println("x = " + x); // 좜λ ₯: x = 14
        
        System.out.println("-----------------------");
        z = ++x + y++; // xλ₯Ό 1 μ¦κ°€μ‹œν‚€κ³ , κ·Έ 값을 y와 λ”ν•˜μ—¬ z에 λŒ€μž… ν›„ yλ₯Ό 1 μ¦κ°€μ‹œν‚΄
        System.out.println("z = " + z); // 좜λ ₯: z = 23
        System.out.println("x = " + x); // 좜λ ₯: x = 15
        System.out.println("y = " + y); // 좜λ ₯: y = 9
    }

}


μ „μΉ˜ 증감 μ—°μ‚°μžλŠ” λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜κΈ° 전에 값을 λ³€κ²½ν•΄μ•Ό ν•  λ•Œ μœ μš©ν•˜κ³ , ν›„μΉ˜ 증감 μ—°μ‚°μžλŠ” λ³€μˆ˜λ₯Ό μ‚¬μš©ν•œ 후에 값을 λ³€κ²½ν•΄μ•Ό ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€.


3. λΆ€ν˜Έ/증감 μ—°μ‚°μž ν™œμš©πŸ€Ί

μ‹€μ œ 예제λ₯Ό 톡해 λΆ€ν˜Έ/증감 μ—°μ‚°μžλ₯Ό ν™œμš©ν•œ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

public class PreIncrementOperatorExample {

    public static void main(String[] args) {

        int count = 0; // 초기 카운트 λ³€μˆ˜λ₯Ό 0으둜 μ΄ˆκΈ°ν™”

        // μ „μΉ˜ 증감 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 루프 λ³€μˆ˜λ₯Ό μ¦κ°€μ‹œν‚€λŠ” 예제
        for (int i = 0; i < 5; ++i) {
            count++; // 카운트 λ³€μˆ˜λ₯Ό 1 μ¦κ°€μ‹œν‚΄
        }
        System.out.println("Count after loop: " + count); // 루프 μ’…λ£Œ ν›„μ˜ 카운트 λ³€μˆ˜ 좜λ ₯: 5
    }
}
public class PreIncrementExample {

    public static void main(String[] args) {
        int a = 5; // λ³€μˆ˜ aλ₯Ό 5둜 μ΄ˆκΈ°ν™”
        int b = 10; // λ³€μˆ˜ bλ₯Ό 10으둜 μ΄ˆκΈ°ν™”

        // λ³€μˆ˜ 값을 증가 및 κ°μ†Œμ‹œν‚€λŠ” μ „μΉ˜ 증감 μ—°μ‚°μž μ‚¬μš© 예제
        int result1 = ++a + b--; // λ¨Όμ € aλ₯Ό 1 μ¦κ°€μ‹œν‚€κ³ , κ·Έ 값을 b와 λ”ν•œ ν›„ bλ₯Ό 1 κ°μ†Œμ‹œν‚΄
        System.out.println("κ²°κ³Ό 1: " + result1); // κ²°κ³Ό 좜λ ₯: 16
        System.out.println("a: " + a); // λ³€μˆ˜ a 좜λ ₯: 6
        System.out.println("b: " + b); // λ³€μˆ˜ b 좜λ ₯: 9
    }
}
public class PostDecrementExample {

    public static void main(String[] args) {
        int a = 5; // λ³€μˆ˜ aλ₯Ό 5둜 μ΄ˆκΈ°ν™”
        int b = 10; // λ³€μˆ˜ bλ₯Ό 10으둜 μ΄ˆκΈ°ν™”
		
        // λ³€μˆ˜μ˜ 값에 λ³€ν™”λ₯Ό μ£ΌλŠ” ν›„μΉ˜ κ°μ†Œ μ—°μ‚°μžμ™€ μ „μΉ˜ κ°μ†Œ μ—°μ‚°μž μ‚¬μš© 예제
        int result2 = a-- - --b; // λ¨Όμ € a의 값을 μ‚¬μš©ν•˜κ³  1을 κ°μ†Œμ‹œν‚€λ©°, κ·Έ ν›„ b의 값을 1 κ°μ†Œμ‹œν‚¨ ν›„ a와 bλ₯Ό λΉΌμ€λ‹ˆλ‹€.
        System.out.println("κ²°κ³Ό 2: " + result2); // κ²°κ³Ό 좜λ ₯: -4
        System.out.println("a: " + a); // λ³€μˆ˜ a 좜λ ₯: 4
        System.out.println("b: " + b); // λ³€μˆ˜ b 좜λ ₯: 9
    }
}

4. 핡심 λ‚΄μš©πŸ‘€

λΆ€ν˜Έ 증감 μ—°μ‚°μž

728x90
λ°˜μ‘ν˜•