의견.png

"연산자"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
 
'''연산자'''(Operator)는 대부분 기본 자료형의 사칙연산 등의 계산을 위해 사용하는 것으로 기본 자료형을 제외한 참조 자료형은 연산자를 사용할 수 없다.
 
'''연산자'''(Operator)는 대부분 기본 자료형의 사칙연산 등의 계산을 위해 사용하는 것으로 기본 자료형을 제외한 참조 자료형은 연산자를 사용할 수 없다.
 
단, 예외로 String 클래스는 + 연산이 가능하다.
 
단, 예외로 String 클래스는 + 연산이 가능하다.
<ref>, <[https://onsil-thegreenhouse.github.io/programming/java/2017/11/02/java_tutorial_1-4/ 연산자 개념]>, 《Github-Onsil's blog》, 2017-11-02</ref>
+
<ref>, <[https://onsil-thegreenhouse.github.io/programming/java/2017/11/02/java_tutorial_1-4/ 연산자 개념]>, 《Github-Onsil's blog, 2017-11-02</ref>
 
주로 어떤 연산을 할지 지정하는 것을 연산자라하고, 연산의 대상이 되는 것을 피연산자라고 한다.
 
주로 어떤 연산을 할지 지정하는 것을 연산자라하고, 연산의 대상이 되는 것을 피연산자라고 한다.
 
연산자는 작업의 종류에 따라서 대입연산자, 산술연산자, 비교연산자, 논리연산자 등으로 나뉜다.
 
연산자는 작업의 종류에 따라서 대입연산자, 산술연산자, 비교연산자, 논리연산자 등으로 나뉜다.
13번째 줄: 13번째 줄:
  
 
*'''결합방식'''
 
*'''결합방식'''
결합방식(처리순서)는 연산자에 따라 2가지로 나뉜다.
+
결합방식(처리순서)는 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말하는 것으로 연산자에 따라 2가지로 나뉜다.
 +
'(),[],산술,시프트,관계,비트,논리,조건,순서'연산자의 경우 왼쪽에서 오른쪽으로 결합하고, '단항,대입'연산자의 경우 오른쪽에서 왼쪽으로 결합한다.
 +
같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말한다.
 
<ref name="연산자"></ref>  
 
<ref name="연산자"></ref>  
  
83번째 줄: 85번째 줄:
 
<ref name="연산자"></ref>  
 
<ref name="연산자"></ref>  
 
*'''산술 연산자'''
 
*'''산술 연산자'''
가, 감, 승, 제 등의 산술 계산에 사용되는 연산자로 '+, -, *, /, %, ++, --'가 있다. 산술 연산자는 안에서도 우선 순위가 나뉘는데 증감 연산자→산술 연산자(* / %)→산술 연산자(+ -)순으로 높아진다.
+
가, 감, 승, 제 등의 산술 계산에 사용되는 연산자로 '+, -, *, /, %, ++, --'가 있다.  
 +
산술 연산자는 안에서도 우선 순위가 나뉘는데 증감 연산자→산술 연산자(* / %)→산술 연산자(+ -)순으로 높아진다.
 
산술 연산자 중 '* / %'는 우선순위가 같아 왼쪽에서 오른쪽 방향으로 순서대로 계산한다.
 
산술 연산자 중 '* / %'는 우선순위가 같아 왼쪽에서 오른쪽 방향으로 순서대로 계산한다.
 +
또한, 피연산자의 크기가 4byte보다 작을 경우 4byte(int형)로 변환한 후 연산을 수행한다.
 +
고려 사항으로는 연산하기 전에 데이터형을 둘 중 더 큰 자료형으로 일치시켜야 하고, 정수와 정수 나눗셈 시 정수로 나와야 하므로 소수는 버려지고 정수만 출력된다.
 +
  
 
  예) 3 - 7 % 8 + 5'''
 
  예) 3 - 7 % 8 + 5'''
98번째 줄: 104번째 줄:
 
*'''비트 연산자'''
 
*'''비트 연산자'''
 
비트별(0,1)로 연산하여 결과를 얻는 연산자로 '&(and) ^( xor) |(or) ~(not) <<(비트 왼쪽 이동) >>(비트 오른쪽 이동)'이 있다.
 
비트별(0,1)로 연산하여 결과를 얻는 연산자로 '&(and) ^( xor) |(or) ~(not) <<(비트 왼쪽 이동) >>(비트 오른쪽 이동)'이 있다.
 +
  
 
*'''논리 연산자'''
 
*'''논리 연산자'''
두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자로 '!(not) &&(and) ||(or)'이 있다.
+
논리 연산자는 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자로 '!(not) &&(and) ||(or)'이 있다.
  
 
*'''대입 연산자'''
 
*'''대입 연산자'''
116번째 줄: 123번째 줄:
  
 
== 참고 자료 ==
 
== 참고 자료 ==
*소프트웨어 어휘다지기 - 중등, 〈[https://terms.naver.com/entry.nhn?docId=4383177&cid=59941&categoryId=59941 연산자 개념]〉, 《네이버 지식백과》
+
*[Java] 연산자(operator), < [https://onsil-thegreenhouse.github.io/programming/java/2017/11/02/java_tutorial_1-4 연산자 개념]/> , 《GitHub-Onsil'blog》
*2020 정보처리기사 필기, <연산자 종류> , <길벗>
+
*소프트웨어 어휘다지기 - 중등, 〈[https://terms.naver.com/entry.nhn?docId=4383177&cid=59941&categoryId=59941 연산자 개념 및 예시]〉, 《네이버 지식백과》
 +
*2020 정보처리기사 필기, <연산자 종류> , 《길벗》
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2020년 8월 6일 (목) 12:00 판

연산자(Operator)는 대부분 기본 자료형의 사칙연산 등의 계산을 위해 사용하는 것으로 기본 자료형을 제외한 참조 자료형은 연산자를 사용할 수 없다. 단, 예외로 String 클래스는 + 연산이 가능하다. [1] 주로 어떤 연산을 할지 지정하는 것을 연산자라하고, 연산의 대상이 되는 것을 피연산자라고 한다. 연산자는 작업의 종류에 따라서 대입연산자, 산술연산자, 비교연산자, 논리연산자 등으로 나뉜다. [2]

개요

어떤 연산을 할지 지정하는 것을 연산자 연산의 대상이 되는 것을 피연산자라고 한다. 예를 들어, x + y가 있을 때, +는 연산자에 x, y는 피연산자에 해당된다. [2] 논리 부정처럼 피연산자가 한 개만 필요하면 단항 연산자, +처럼 피연산자가 두 개 있으면 이항연산자, 세 개 있으면 삼항 연산자라고 한다. [3]

  • 결합방식

결합방식(처리순서)는 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말하는 것으로 연산자에 따라 2가지로 나뉜다. '(),[],산술,시프트,관계,비트,논리,조건,순서'연산자의 경우 왼쪽에서 오른쪽으로 결합하고, '단항,대입'연산자의 경우 오른쪽에서 왼쪽으로 결합한다. 같은 순위의 연산자가 하나의 수식에 두 개 이상 존재하는 경우 우선적으로 연산하는 방향을 말한다. [3]

  1. 예) 1+2+3 → 왼쪽에서 오른쪽으로 결합(1+2→+3)
  2. 예) a=b=c=1 → 오른쪽에서 왼쪽으로 결합(c=1→b=c→a=b)

특징

  • 우선순위

하나의 연산식에 여러 개의 연산이 사용되었을 경우 어떤 것을 먼저 처리할지 정하는 것이다. 순서는 단항 연산자→산술 연산자→시프트연산자→관계 연산자→비트 연산자→논리 연산자→조건 연산자→대입 연산자→순서 연산자 순으로 낮아진다. 단, (),[]연산자는 최우선 연산자로 ()는 우선순위 변경을 위해 사용되며, []는 배열의 크기나 첨자를 나타낼 때 사용한다. [3]

연산자 우선순위
대분류 중분류 연산자 결합규칙
단항 연산자 단항 연산자 !(논리 not), ~(비트 not), ++, --, sizeof(기타)
이항 연산자 산술 연산자 *, /, %(나머지)
이항 연산자 시프트 연산자 <<, >>, >>>
이항 연산자 관계 연산자 <, <=, >, >=, ==, !=
이항 연산자 비트 연산자 &(비트 and), ^(비트 xor), |(비트 or)
이항 연산자 논리 연산자 &&(논리 and), |두 개(논리 or)
삼항 연산자 조건 연산자 ?, :
대입 연산자 대입 연산자 =, +=, -=, *=, %=, /=, >>=, <<=
순서 연산자 순서 연산자 ,

종류

연산자의 종류는 산술연산자, 관계연산자, 비트연산자, 논리연산자, 대입연산자, 조건연산자, 기타 연산자로 나뉜다. [3]

  • 산술 연산자

가, 감, 승, 제 등의 산술 계산에 사용되는 연산자로 '+, -, *, /, %, ++, --'가 있다. 산술 연산자는 안에서도 우선 순위가 나뉘는데 증감 연산자→산술 연산자(* / %)→산술 연산자(+ -)순으로 높아진다. 산술 연산자 중 '* / %'는 우선순위가 같아 왼쪽에서 오른쪽 방향으로 순서대로 계산한다. 또한, 피연산자의 크기가 4byte보다 작을 경우 4byte(int형)로 변환한 후 연산을 수행한다. 고려 사항으로는 연산하기 전에 데이터형을 둘 중 더 큰 자료형으로 일치시켜야 하고, 정수와 정수 나눗셈 시 정수로 나와야 하므로 소수는 버려지고 정수만 출력된다.


예) 3 - 7 % 8 + 5

연산자 우선 순위에 따라 '7 % 8'→'3 -'→'+ 5'를 하여 답은 1이 된다.

전치: 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감시킨 후 변수를 연산에 사용한다.(++a, --a)
후치: 변수 뒤에 증감 연산자가 오는 형태로 먼저 변소를 연산에 사용한 후 변수의 값을 증감시킨다.(a++, a--)
  • 관계 연산자

두 수의 관계를 비교하여 참 또는 거짓을 결과로 얻는 연산자로 '== != > >= < <='가 있다. 왼쪽을 기준으로 크다 또는 크거나 같다로 해석한다.

  • 비트 연산자

비트별(0,1)로 연산하여 결과를 얻는 연산자로 '&(and) ^( xor) |(or) ~(not) <<(비트 왼쪽 이동) >>(비트 오른쪽 이동)'이 있다.


  • 논리 연산자

논리 연산자는 두 개의 논리 값을 연산하여 참 또는 거짓을 결과로 얻는 연산자로 '!(not) &&(and) ||(or)'이 있다.

  • 대입 연산자

연산 후 결과를 대입하는 연산식을 간략하게 입력할 수 있도록 대입 연산자를 제공하는 것으로 '+= -= *= /= %= <<= >>='가 있다.

  • 조건 연산자

조건에 따라 서로 다른 수식을 수행하는 것이다.

예) 조건 ? 수식1 : 수식2; -> '조건'의 수식이 참이면 '수식1'을 거짓이면 '수식2'를 실행
  • 기타 연산자

sizeof ,(콤마) (자료형)등이 있다.

각주

  1. , <연산자 개념>, 《Github-Onsil's blog, 2017-11-02
  2. 2.0 2.1 , <연산자 개념 및 예시>, 《네이버 지식백과》
  3. 3.0 3.1 3.2 3.3 , <연산자>, 《2020 시나공 정보처리기사 필기》, 2019-11-13

참고 자료

  • [Java] 연산자(operator), < 연산자 개념/> , 《GitHub-Onsil'blog》
  • 소프트웨어 어휘다지기 - 중등, 〈연산자 개념 및 예시〉, 《네이버 지식백과》
  • 2020 정보처리기사 필기, <연산자 종류> , 《길벗》

같이 보기


  의견.png 이 연산자 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.