2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

프로그래밍언어문법(C,C++,Python,JAVA)

3.3 프로그래밍 왕국의 증감 연산자

원당컴1 2024. 6. 4. 09:10

https://wondangcom.tistory.com/2797

 

프로그래밍언어 문법 목차

I.  서론1. 프로그래밍 언어 이론1.1 프로그래밍 언어란?프로그래밍 언어가 무엇인지 살펴 본다.링크 - https://wondangcom.tistory.com/1615 1.1 프로그래밍 언어란?목표 프로그래밍 언어가 무엇인지 알아

wondangcom.tistory.com

 

프로그래밍 왕국의 증감 연산자

옛날 옛적에 프로그래밍 왕국이 있었습니다. 이 왕국은 다양한 프로그래밍 언어로 이루어져 있었고, 각 언어마다 자신만의 특징을 가지고 있었습니다.

프로그래밍 왕국의 주민들은 변수라는 마법 돌을 사용하여 값을 저장했습니다. 그리고 이 마법 돌에는 증감 연산자라는 특별한 주문이 있었습니다. 이 주문은 변수의 값을 1 증가시키거나 1 감소시킬 수 있었습니다.

어느 날, 왕국의 프로그래머들은 증감 연산자를 사용하는 방법에 대해 논쟁을 벌였습니다. 어떤 프로그래머들은 증감 연산자를 변수 앞에 놓고 사용하는 것이 좋다고 주장했습니다. 다른 프로그래머들은 변수 뒤에 놓는 것이 더 나은 방법이라고 생각했습니다.

그래서 왕국의 왕은 이 논쟁을 해결하기 위해 시험을 내기로 했습니다. 시험 문제는 다음과 같았습니다:

"주어진 변수 num1과 num2를 사용하여 다음 연산을 수행하세요:

  1. num1을 1 증가시키고, 그 값을 num3에 할당하세요.
  2. num2를 1 감소시키고, 그 값을 num4에 할당하세요."

프로그래머들은 각자 자신의 방법대로 주문을 외웠습니다. 그리고 시험 결과를 확인해보니, 변수 앞에 놓은 프로그래머들은 num3에 6을, num4에 9을 할당했습니다. 반면 변수 뒤에 놓은 프로그래머들은 num3에 5를, num4에 10를 할당했습니다.

왕은 이 결과를 보고 웃음을 터뜨렸습니다. 그리고 말했습니다:

“프로그래밍 왕국의 주민들이여! 증감 연산자는 변수 앞에 놓든 뒤에 놓든, 변수의 값은 다르지 않습니다. 다만, 주문을 외울 때 주의해야 합니다. 변수 앞에 놓으면 먼저 연산을 하고, 변수 뒤에 놓으면 나중에 연산을 하게 됩니다. 이것이 증감 연산자의 비밀입니다!”

그리고 왕은 프로그래밍 왕국의 주민들에게 이 비밀을 알려주었습니다. 이후로 프로그래머들은 주문을 외울 때 항상 주의하며, 증감 연산자를 올바르게 사용하게 되었습니다.

이렇게 프로그래밍 왕국은 증감 연산자의 비밀을 알게 되었고, 모두가 행복하게 코드를 작성하며 프로그래밍을 하게 되었습니다.

 

C언어

#include <stdio.h>

int main() {
    int num1 = 5;
    int num2 = 10;

    // 변수 앞에 놓은 경우
    int num3 = ++num1; // num1을 1 증가시키고, 그 값을 num3에 할당
    int num4 = --num2; // num2를 1 감소시키고, 그 값을 num4에 할당

    printf("변수 앞에 놓은 경우:\n");
    printf("num1: %d, num2: %d, num3: %d, num4: %d\n", num1, num2, num3, num4);

    // 변수 뒤에 놓은 경우
    num1 = 5; // 초기화
    num2 = 10; // 초기화
    num3 = num1++; // num1을 num3에 할당하고, num1을 1 증가시킴
    num4 = num2--; // num2를 num4에 할당하고, num2를 1 감소시킴

    printf("변수 뒤에 놓은 경우:\n");
    printf("num1: %d, num2: %d, num3: %d, num4: %d\n", num1, num2, num3, num4);

    return 0;
}

++num1 은 대입연산을 수행하기 전 먼저 5 -> 6으로 증가 시킨 후에 num3에 대입을 합니다. ++이 앞에 있어서 전치증가 연산자라고 합니다.

num1++ 은 대입연산을 수행하는 시점에 원래의 값 5를 대입 후 대입연산자가 끝난 후 num1을 나중에 증가합니다. ++이 뒤에 있어서 후치증가 연산자라고 합니다.

--num2 역시 앞에 있기 때문에 전치감소연산자라고 하며 10의 값을 먼저 감소하여 9를 num4에 대입합니다.

num2-- 역시 뒤에 있기 때문에 후치감소연산자라고 하며 10의 값을 먼저 대입하고 대입연산자가 끝난 후 감소합니다.

 

C++

#include <iostream>

int main() {
    int num1 = 5;
    int num2 = 10;

    // 변수 앞에 놓은 경우
    int num3 = ++num1; // num1을 1 증가시키고, 그 값을 num3에 할당
    int num4 = --num2; // num2를 1 감소시키고, 그 값을 num4에 할당

    std::cout << "변수 앞에 놓은 경우:" << std::endl;
    std::cout << "num1: " << num1 << ", num2: " << num2 << ", num3: " << num3 << ", num4: " << num4 << std::endl;

    // 변수 뒤에 놓은 경우
    num1 = 5; // 초기화
    num2 = 10; // 초기화
    num3 = num1++; // num1을 num3에 할당하고, num1을 1 증가시킴
    num4 = num2--; // num2를 num4에 할당하고, num2를 1 감소시킴

    std::cout << "변수 뒤에 놓은 경우:" << std::endl;
    std::cout << "num1: " << num1 << ", num2: " << num2 << ", num3: " << num3 << ", num4: " << num4 << std::endl;

    return 0;
}

C언어와 동일합니다.

 

Java

public class Main {
    public static void main(String[] args) {
        int num1 = 5;
        int num2 = 10;

        // 변수 앞에 놓은 경우
        int num3 = ++num1; // num1을 1 증가시키고, 그 값을 num3에 할당
        int num4 = --num2; // num2를 1 감소시키고, 그 값을 num4에 할당

        System.out.println("변수 앞에 놓은 경우:");
        System.out.println("num1: " + num1 + ", num2: " + num2 + ", num3: " + num3 + ", num4: " + num4);

        // 변수 뒤에 놓은 경우
        num1 = 5; // 초기화
        num2 = 10; // 초기화
        num3 = num1++; // num1을 num3에 할당하고, num1을 1 증가시킴
        num4 = num2--; // num2를 num4에 할당하고, num2를 1 감소시킴

        System.out.println("변수 뒤에 놓은 경우:");
        System.out.println("num1: " + num1 + ", num2: " + num2 + ", num3: " + num3 + ", num4: " + num4);
    }
}

C언어 연산자와 동일합니다.

 

Python

    num1 = 5
    num2 = 10

    # 변수 앞에 놓은 경우
    num3 = num1 + 1  # num1을 1 증가시키고, 그 값을 num3에 할당
    num1 += 1  # num1을 1 증가시킴
    num4 = num2 - 1  # num2를 1 감소시키고, 그 값을 num4에 할당
    num2 -= 1  # num2를 1 감소시킴

    print("변수 앞에 놓은 경우:")
    print(f"num1: {num1}, num2: {num2}, num3: {num3}, num4: {num4}")

    # 변수 뒤에 놓은 경우
    num1 = 5  # 초기화
    num2 = 10  # 초기화
    num3 = num1  # num1을 num3에 할당하고, num1을 1 증가시킴
    num1 += 1  # num1을 1 증가시킴
    num4 = num2  # num2를 num4에 할당하고, num2를 1 감소시킴
    num2 -= 1  # num2를 1 감소시킴

    print("변수 뒤에 놓은 경우:")
    print(f"num1: {num1}, num2: {num2}, num3: {num3}, num4: {num4}")

Python은 후치증가,후치감소 와 같은 증감 연산자는 없습니다. 따라서 위와 같이 대입연산을 수행하기 전,후로 나누어서 복합대입연산자를 이용하여 값을 증가 후 처리합니다.

 

요약

++num : 대입연산을 수행하기 전에 값을 증가 시키는 전치 증가 연산자

num++ : 대입연산을 수행 후 값을 증가 시키는 후치 증가 연산자

--num : 대입연산을 수행하기 전에 값을 감소 시키는 전치 감소 연산자

num-- : 대입연산을 수행 후 값을 감소 시키는 후치 감소 연산자.

단, Python에서는 증감연산자를 지원하지 않으므로 대입연산을 수행하기 전/후 값을 증가 또는 감소 한다.

 

인천 검단 원당컴퓨터 학원(T 032-565-5497)

#정보올림피아드

#검단신도시코딩

#원당동코딩

#마전동코딩

#왕길동코딩

#당하동코딩

#아라동코딩

#풍무동코딩

#불로동코딩

#검단동코딩

#검암동코딩

 

 

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기