본문 바로가기
c언어 강좌

[C언어 왕초보 탈출 강좌] 연산자

by 두뇌향상중 2023. 4. 30.
반응형
C언어를 독학하시는 분들을 위해 포스팅합니다.
이 글은 완전 처음 접하는 왕초보 분들을 위한 강좌입니다.
가급적 자주 포스팅하겠습니다.

 

모든 프로그래밍 언어는 "연산자"의 개념이 있습니다.

각 언어마다 표현하는 방식이 약간 다를 수는 있지만,

개념은 똑같습니다.

 

C언어를 통해 연산자를 잘 익히시면, 

다른 프로그래밍 언어를 공부하실 때에는 훨씬 수월하겠죠?

 

연산자는, 산술 연산자, 관계 연산자, 논리 연산자

이렇게 크게 세 가지로 나누어 볼 수 있습니다.

반응형

1. 산술 연산자

산술 연산자는 사칙 연산, 그러니까,  "+", "-", "x", "÷"와 나눈 나머지를 표현한 개념을 포함합니다.

다음은 산술 연산자의 표현식입니다.

산술 연산자 개념 표현식
더하기 +
빼기 -
곱하기 *
나누기 /
나눈 나머지 %

산술연산자를 사용하여 다음과 같이 순서도를 만들었습니다.

이 순서도를 보고, 코드를 작성해 보세요.

저는 이렇게 작성해 보았습니다.

#include <stdio.h>

int main()
{
    int a, b;
    int res1, res2, res3, res4, res5;

    scanf("%d %d", &a, &b);
    
    res1 = a + b;
    res2 = a - b;
    res3 = a * b;
    res4 = a / b;
    res5 = a % b;

    printf("%d + %d = %d\n", a, b, res1);
    printf("%d - %d = %d\n", a, b, res2);
    printf("%d * %d = %d\n", a, b, res3);
    printf("%d / %d = %d ... %d\n", a, b, res4, res5);

    return 0;
}

꼭 본인이 작성해 보시고, 비교해 보세요!

정답은 없습니다.

자꾸 작성해 보면서, 본인의 스타일을 찾아가면 됩니다.

다만, 실력이 쌓일수록 코드 최적화가 필요하겠지요.

코드 최적화에 대해서는 차츰 언급하도록 하겠습니다.

 

실행하면 다음과 같이 결과를 확인할 수 있습니다.

2. 관계 연산자

관계 연산자는 왼쪽과 오른쪽에 대한 관계에 대해 표현한 것으로, 

등호와 부등호 을 포함한 개념입니다.

다음은 관계 연산자의 개념과 그 표현식입니다.

관계 연산자 개념 표현식
왼쪽과 오른쪽이 같다 ==
왼쪽과 오른쪽이 다르다 !=
왼쪽이 오른쪽보다 크다 >
왼쪽이 오른쪽보다 작다 <
왼쪽이 오른쪽보다 크거나 같다 >=
왼쪽이 오른쪽보다 작거나 같다 <=
조건이 참이면 값1, 거짓이면 값2 조건 ? 값1 : 값2

관계 연산자를 이용하여 다음과 같이 순서도를 만들어 보았습니다.

이 순서도에는 우리가 아직 배우지 못한 표현식이 있습니다.

마름모 형태의 조건은 if~ else if~ else 등으로 표현을 합니다.

if에 대해서는 추후 포스팅에 다시 언급하겠습니다.

다음과 같이 코드로 작성합니다.

#include <stdio.h>

int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    
    if(a == b)
        printf("a = b");
    else if(a > b)
        printf("a > b");
    else
        printf("a < b");

    return 0;
}

그 결과는 다음과 같습니다.

3. 논리 연산자

논리 연산자는 "그리고", "또는" 개념이 들어가는 연산자입니다.

일반적으로 조건문에 많이 사용되기는 하지만, 

본디 컴퓨터의 최소 단위인 비트(bit) 연산을 위한 연산자이기도 합니다.

 

비트 연산 및 비트와 바이트(byte) 관계 등은 추후 왕초보 강좌를 끝낸 후에, 

본격적으로 자료구조에 들어갈 때 다시 설명하도록 하겠습니다.

지금은 두 개 이상의 조건식에 사용된다는 정도만 이해하시면 되겠습니다.

논리 연산자 개념 표현식
모든 조건식에 모두 포함된다 조건1 && 조건2 
모든 조건식 중 하나만 참이면 된다 조건1 || 조건2
해당 조건식이 아니면 된다 !(조건식)

좀 억지스럽긴 하지만, 논리 연산자를 이용하여 순서도를 다음과 같이 그려보았습니다.

이에 대한 코드는 다음과 같습니다.

#include <stdio.h>

int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    
    if(a > 0 && b > 0)
        printf("a x b > 0");
    else if(a > 0 || b > 0)
        printf("a x b < 0");
    else
        printf("a x b > 0");

    return 0;
}

이 코드를 실행하여,

a와 b 입력받는 숫자를 모두 음수로 했을 경우, 

위 조건식에서 마지막 else 이하 문장으로 들어옵니다.

그 결과가 다음과 같이 출력된 것입니다.

 

이 연산자들 모두 개념은 다른 프로그래밍 언어에도 포함되기 때문에, 꼭 숙지하시고 넘어가셔야 합니다.

이제 곧 코딩을 시작하게 되면, 바로 이 부분부터 헷갈리게 될 테니까요.

 

다음은 알고리즘에 대한 개념, 그리고 그 구조에 대해 포스팅하도록 하겠습니다.

 

 

반응형

댓글