Pawn 프로그래밍

본 토픽은 현재 준비중입니다. 공동공부에 참여하시면 완성 되었을 때 알려드립니다.

연산자

연산자(operator)

프로그래밍 언어의 연산자는 거의 대부분 비슷합니다.
대입연산자, 산술연산자, 비트연산자, 관계 연산자 논리연산자 모두 C언어와 동일합니다.
 
연산자는 달리 말하면 수식 기호라고도 합니다. +, -, *(곱하기), /(나누기), %(나머지) 등 많은 기호들이 존재합니다.
그리고 연산자 종류도 꽤 많은 편이라서 여러분들이 이것을 일일이 암기하기엔 무리가 있고 실습을 하면서
몸으로 느끼시는게 정신건강에 이롭다고 알려드리고 싶습니다.
 

대입연산자 =

대입 연산자라 함은 오른쪽의 값을 왼쪽의 변수에 대입하는 연산자입니다.
쉽게 설명 드리면 a = 5 라는 코드가 있다면 a와 5 사이의 = 라는 수식기호는 대입 연산자로 변수 a에 5를 넣어주는 역할을 하는 것입니다.
 
주의할 점은 둘은 같다라는 의미가 아닌 오른쪽의 값이 왼쪽에 대입된다라고 이해해주셔야 합니다.

산술 연산자 +, -, *, /, %

산술 연산자는 말그대로 계산을 담당하는 연산자입니다.
*는 곱하기 /는 나누기 %는 나누기 이후 나머지를 가리키는 기호입니다.
여러분이 주의하셔야 할 것은 a + 5; 와 같은 코드는 작동하지 않는다는 것입니다. 만약 a 자체에 특정 값을 더해주고 싶다면 a = a+5; 또는 아래의 복합 대입 연산자를 사용하여야 합니다.

복합 대입 연산자 +=, -=, *=, /=, %=

복합 대입 연산자는 대입 연산자와 산술 연산자를 서로 합친 것이라 생각하면 쉽습니다.
가령 a = a+5 라는 코드가 있다고 하면 이 코드는 a +=5와 완전히 의미가 같은 코드입니다.
두 코드 모두 a 자체에 값을 더하는 개념입니다.
 
[*=  /=  %=] 는 산술연산자에서 배웠던대로 각각 [곱하기 나누기 나머지] 입니다.

증감 연산자 ++, --

증감 연산자는 각 변수의 값을 1씩 증가 또는 감소시킵니다.
증감연산자는 간단히 a++; 등으로 사용할 수 있습니다. 여기에 중요한 개념이 있는데 증감연산자는 변수의 어느 위치에 붙느냐에 따라서 그 수행 방식이 완전히 달라진다는 것입니다.
 
예를 들어
 
  1. printf("%d", a++); // a의 값을 먼저 출력한 뒤에 a 값을 증가시킨다
  2. printf("%d", ++a); // a의 값을 먼저 증가시킨 뒤에 a 값을 출력시킨다
 
이 둘은 서로 다른 내용입니다. 예를 들어 a가 5라고 하면, 첫번째 코드는 5가 출력된 이후에 a의 값이
6으로 바뀔 것입니다. 두번째 코드는 a의 값이 먼저 증가되기 때문에 출력값이 6이 될 것입니다.
 
--의 경우는 ++와 반대로 1을 빼주는 개념이고 이 역시 위치에 따라 그 수행 방식이 다릅니다.

관계 연산자 >, <, ==, !=, >=, <=

관계 연산자의핵심은 참이냐 거짓이냐를 따져 1 또는 0을 반환하는 연산자입니다.
예를 들어 result = (a < b); 라는 코드가 있고 a에 저장된 값이 b보다 작다면(즉 위 코드가 참이라면)
a에는 1이 대입됩니다.
 
여기서 각 연산자의 의미를 설명하자면
 
  1. > 연산자를 기준으로 왼쪽의 값이 오른쪽보다 크다면 1을 그렇지 않다면 0을 반환한다.
  2. < 연산자를 기준으로 왼쪽의 갑싱 오른쪽보다 작다면 1을 그렇지 않다면 0을 반환한다.
  3. == 연산자를 기준으로 양쪽의 값이 같다면 1을 그렇지 않다면 0을 반환한다.
  4. != 연산자를 기준으로 양쪽의 값이 서로 같지 않다면 1을 그렇지 않다면 0을 반환한다.
  5. >= 연산자를 기준으로 왼쪽의 값이 오른쪽보다 크거나 같다면 1을 그렇지 않다면 0을 반환한다.
  6. <= 연산자를 기준으로 왼쪽의 값이 오른쪽보다 작거나 같다면 1을 그렇지 않다면 0을 반환한다.
 
위와 같습니다.
 
조금 뒤에 설명할 제어문에서 이 관계 연산자가 특히 자주 쓰입니다. 하지만 그만큼 제어문에서의 관계 연산자의 사용은 초보 개발자분들이 많이 실수하시는 부분이기도 합니다.

논리 연산자 &&, ||, !

논리 연산자는 AND  OR  NOT으로도 불립니다.
 
  1. &&(AND) 연산자를 기준으로 양쪽 값 중 하나라도 거짓이면 거짓을 반환한다.
  2. ||(OR) 연산자를 기준으로 양쪽 값 중 하나라도 참이면 참을 반환한다.
  3. !(NOT) 결과가 참이면 거짓을 반환하고, 거짓일 경우 참을 반환한다.
여러분들에겐 세번째 NOT의 개념이 상당히 와닫지 않으실 것입니다.
하지만 지금은 그냥 지나가세요. 추후 제어문을 배울때 상당히 자세히 설명해드리겠습니다.
 
그리고 하나 빼먹을 뻔 했는데 왼쪽에는 변수가 오른쪽에는 값이 와야한다는 것이 기본 개념이지만
이 값이란 놈은 변수가 될 수도 있습니다.
즉  a=b; 와 같은 코드가 성립하는 이유는 b에 저장된 값이 a에 대입된다 라는 의미로 해석될 수 있습니다.
 

맺음말

사실 위의 연산자들 외에도 삼항 조건 연산자 비트 연산자 등 몇 개가 더 있습니다.
하지만 이런 연산자들은 나중에 다루기로 하고 일단은 연산자에 대한 설명을 여기서 마치도록 하겠습니다.
 
 

댓글

댓글 본문
버전 관리
u4bi
현재 버전
선택 버전
graphittie 자세히 보기