우리가 흔히 알고있는 +-×÷의 사칙연산 이외에도 C언어에서 사용할 수 있는 다양한 연산자 가 많습니다. 오늘은 C언어에서 활용빈도가 엄청 높은  필수적인 연산자들을 소개드리겠습니다.

1. 대입 연산자


대입 연산자(=)는 변수에 값을 대입시킬 때 사용합니다. 사실 = 연산자는 수학에서 '같다'는 의미로 사용됩니다. 하지만 C언어와 대부분의 프로그래밍 언어에서 = 기호는 대입 연산자를 뜻하고 ==연산자가 '같다'는 의미의 논리연산자로 사용됩니다.

byte num = 10;
double PI = 3.14;

 

 

2. 산술 연산자


산술 연산자는 4칙연산과 관련된 연사자입니다.

+ : 더하기 ex) int add = 3 + 4;

- : 빼기 ex) double sub = 7.14 - 5.25;

* : 곱하기 ex) int mul = 3*4;

/ : 나누기 ex) double div = 7.0/4.2;

% : 나머지 ex) int rem = 14/3; // 14를 3으로 나누면 몫이 4이고 나머지가 2이기 때문에 변수 rem은 2를 가진다.

 

산술연산자들은 대입연산자(=)와 같이 쓰면 수식이 간결해집니다.

int a+=3; // 이 코드는 a=a+3;과 동일
int a-=3; // 이 코드는 a=a-3;과 동일
int a*=3; // 이 코드는 a=a*3;과 동일
int a/=3; // 이 코드는 a=a/3;과 동일
int a%=3; // 이 코드는 a=a%3;과 동일

 

#

3. 증가, 감소 연산자


증가, 감소 연산자에는 ++, -가 있습니다. ex) num++, ++num, num-, -num

변수의 값을 1 증가시키거나 감소하라는 의미인데, ++과 -의 위치에 주의해야 합니다. ++이나 -이 뒤에오면 위의 증감 명령이 속한 문장을 먼저 다 실행시키고 ++,-을 수행하라는 의미입니다. ++,-이 앞에 오면 먼저 값을 증가, 감소 시킨 후에 문장을 실행하라는 의미입니다.

package hello;

public class HelloJava{
    public static void main(String[] args){
        int num = 10;
        int result = 0;
        result = num++;

        System.out.println(result);
        System.out.println(num);

        num = 10;
        result = ++num;

        System.out.println(result);
        System.out.println(num);
    }
}

 

실행결과

result is 10

num is 11

result is 11

num is 11

계속하려면 아무 키나 누르십시오 . . .

num++을 사용했을때는 result에 먼저 num의 값이 담기고 난 다음 num++이 실행되어 num이 1 증가했습니다. 하지만, ++num을 사용했을때는 num이 먼저 10에서 11로 1 증가 후 result에 대입이 되었어요. -연산도 동일한 결과를 만들어 냅니다.

 

 

#

4. 비교 연산자


비교 연산자에는 <, >, <=, >=, ==, !=이 있습니다. 두 항을 비교하여 논리판단을 할 때 사용합니다.

< : if(a<b){a++;} // a가 b보다 작으면 a의 값을 1 올려라

\> : if(a>b){a-;} // a가 b보다 크면 a의 값을 1 줄여라

<= : if(a<=b){a++;} // a가 b보다 작거나 같으면 a의 값을 1 올려라

\>= : if(a>=b){a-;} // a가 b보다 크거나 같으면 a의 값을 1 줄여라

== : if(a==5){System.out.println("a is 5"); // a가 5와 같으면 "a is 5"의 문장을 출력해라

!= : if(a!=5){System.out.println("a is not 5"); // a가 5와 같지 않다면 "a is not 5"의 문장을 출력해라

if문은 조건문인데, 우리가 제시한 조건을 판단하여 '참(1)'이면 { } 안의 문장을 실행하고 '거짓(0)'이면 { } 안의 문장을 실행하지 않습니다. 반복문과 조건문 강의에서 다룰겁니다.

우리가 위와 같은 비교연산자를 이용해서 논리연산을 수행하면 수식 자체가 0이나 1을 반환합니다. 예컨데 a<b가 사실이면 a<b 라는 문장이 정수 1과 동일하단 것입니다.

package hello;

public class HelloJava{
    public static void main(String[] args){
        int num = 10;

        System.out.println(num==10); //참이므로 true
        System.out.println(num!=10); //거짓이므로 false
        System.out.println(num>5); //참이므로 true

        if(num == 10)
        {
            num++;
            num++;
        } // ( ) 안의 문장이 참이므로 {} 안의 문장 수행 num이 10에서 12로 증가

        System.out.println(num); // num = 12
    }
}

이처럼 비교연산자는 논리를 판단하고 결과에 따라 다른 실행이 필요할 때 사용합니다.

 

 

 

5. 논리 연산자


&& : AND 연산자 → 두 조건이 '모두 참' 일 때 참이면 1 반환

|| : OR 연산자 → 두 조건 중 '하나라도 참' 일 때 참이면 1 반환

! : NOT 연산자 → 논리 역전 ('참'→'거짓',  '거짓'→'참')

package hello;

public class HelloJava{
    public static void main(String[] args){
        int a=10;
        int b=20;

        if ((a == 10) & & (b == 20)) {
        System.out.println("a is 10 and b is 20");
        }

        if ((a == 10) | | (b == 30)) {
        System.out.println("a is 10 or b is 30");
        }

        if (a != 50) {
        System.out.println("a is not 50");
        }
    }
}

+ Recent posts