JAVA - 연산자

2021. 3. 16. 23:41코 딩 공 부/J A V A

728x90
반응형

연산자(Operators) 이해

 

개요

 

● 연산자란?

- 연산자는 변수나 상수에 미리 약속된 연산을 행하기 위해 사용되며, 연산되는 항의 개수에 따라 이항 연산자(binary operator), 단항 연산자(unary operator) 등으로 나누어 진다.

 

● 연산자(Operator)와 피 연산자(Operand)

- 연산자

식에서 수행할 연산을 지정하는 기호(+,-,*,/ 등)

 

- 피연산자

연산자의 연산 대상(변수, 리터럴, 수식 등)

 

● 특징

- 연산식에 괄호가 사용된 경우 괄호를 먼저 처리하고 연산자의 우선 순위에 따라 연산을 처리한다.

- +와 - 또는 *, /, % 는 동일한 연산 순위를 가지고 있으며 이들 연산은 왼쪽에서 오른쪽으로 진행된다.

- +와 -는 *, /, % 보다 연산 순위가 낮으므로 *, /, %가 +, -보다 먼저 연산한다.

- 단항 연산자(++,--), 부호 연산자(+, -), 대입 연산자(=, +=, -=) 등은 오른쪽에서 왼쪽으로 연산이 진행된다.

 

산술 연산자(Arithmetic Operators)

 

이항 연산자(Binary Operators)

일반적인 산술 연산을 지시하는 연산자로서, 연산을 수행하기 위해 두개의 항(오퍼랜드)이 필요하므로 이항 연산자라 한다.

· 자바는 int형이 연산을 위한 기본 타입이다.

· +, -, *, /, % 연산은 피 연산자가 byte, short, char 타입인 경우 피 연산자를 int로 변환하여 연산한다.

· 자바는 피 연산자가 float형 또는 double 형에서도 % 연산자를 사용할 수 있다.

· 수식에 의해 계산된 결과가 기억되는 변수의 형보다 크면 컴파일 오류가 발생한다.

· 수식에 의해 계산된 결과가 기억되는 변수의 형보다 작으면 기억되는 변수의 형으로 자동 변환되어 저장된다.

 

● 피 연산자의 자료형에 따른 연산 결과

- int 보다 작은 타입의 연산은 int로 변환되어 연산된다. (byte, char, short -> int로 변환되어 연산)

- 피연산자의 자료형이 다른 경우 큰 타입으로 변환되어 연산된다.

 

부호 연산자(Sign Operators)

수식에 대한 부호를 나타내기 위해 '+' 및 '-' 등과 같은 부호 연산자를 사용할 수 있으며 부호 연산자는 피 연산자를 하나만 취하는 단항 연산자(Unary Operators)이다.

 

증감 연산자(Increment/Decrement Operators)

증감 연산자는 변수의 값을 1씩 증가 또는 감소시킨 후, 변화된 값을 다시 그 변수에 저장시켜 주는 연산자로 하나의 피 연산자를 취하는 단항 연산자이다.

++, -- 는 자료형을 유지시키면서 연산을 수행한다. 즉, byte, char, short 형에 대한 연산에서 int형으로 형 변환이 일어나지 않고 자료형이 유지된다.

 

· 전위 형(prefix)

y=++x;

변수 x의 값이 먼저 1 증가한 후에 변수 y에 대입한다.

 

· 후위 형(postfix)

y=x++;

변수 x의 값을 변수 y에 대입한 후에 x의 값을 1증가시킨다.

 

관계 및 논리 연산자

 

관계 연산자(Relational Operators)

관계 연산자는 오퍼랜드(operand)가 두개인 이항 연산자로 수식을 오퍼랜드로 취하여 결과 값이 참인 경우  true를 거짓인 경우에는 false를 반환한다.

 

동등 연산자(Equality Operators)

동등 연산자는 오퍼랜드(operand)가 두개인 이항 연산자로 수식을 오퍼랜드로 취하여 결과 값이 참인 경우 true를 거짓인 경우에는 false를 반환한다.

 

논리 연산자(Conditional Operators)

논리 연산자는 이항 연산자로 논리합(||), 논리곱(&&) 연산자가 있다.

 

논리 부정 연산자(Logical Complement Operator)

논리 부정 연산자는 단항 연산자로 ! 연산자가 있다.

 

비트 단위 연산자(Bitwise Operators)

 

개요

- 비트 단위 연산자는 피 연산자로는 byte, short, char, int, long 타입만 가능하며 double, float형은 사용할 수 없다. boolean형은 비트 단위 shift 연산을 제외한 나머지 비트 단위 연산은 가능하고 결과는 boolean 형이다.

- byte, short, char 타입의 경우 피 연산자를 int로 자동 변환하여 연산을 하므로 결과의 자료형은 int형이다.

 

비트 단위 부정 연산자(Unary bitwise complement)

정수형 자료의 컴퓨터 내부 2진수 값을 1의 보수(반전)된 값을 구하는 단항 연산자이다.

 

비트 단위 논리 연산자

정수형 자료의 내부 2진수 값을 대상으로 논리 연산을 수행하는 이항 연산자이다.

 

● 비트 단위 논리 연산자의 진리 표

 

비트 단위 이동(shift) 연산자

정수형 자료의 내부 비트를 좌측 또는 우측으로 이동(Shift) 시키는 이항 연산자이다.

 

배정 대입 연산자(Assignment Operators)

 

대입 연산자

우측의 값을 좌측에 대입(assign) 한다는 의미를 갖고 있다.

 

배정 연산자

- 먼저 배정되어 있는 연산을 한 후에 결과에 대한 대입 연산이 일어난다.

- 수치 형 결과를 나타내는 연산자들에 대해 자료형을 유지시키면서 연산을 수행하므로 속도가 빠르다.

 

조건 연산자(Conditional Operator)

 

조건 연산자

 

● 개요

- 조건 연산자는 삼항 연산자 또는 선택 연산자라 한다.

- 자바 언어 중 유일하게 피 연산자(오퍼랜드)가 3개 필요한 연산자이다.

- 형식

조건식을 판단하여 조건식이 참이면 오퍼랜드2를 조건식이 거짓이면 오퍼랜드3을 갖는다.

 

기본 자료 형의 형 변환(Type Conversion)

 

형 변환(type conversion)

수식을 계산하거나 대입할 경우 원래 정의된 자료형을 변환해서 처리하는 것을 캐스팅(casting) 연산자라 한다.

 

● 기본 자료 형의 형 변환 규칙

- 크기가 다른 자료 형의 연산에서는 자료 형이 가장 큰 자료 형으로 변환된다.

- 수식에 의해 계산된 결과는 기억되는 변수의 형으로 변환된다.

 

● 묵시적(implicitly)인 방법에 의한 형 변환

- 서로 다른 자료 형의 데이터가 연산할 경우에는 자동적으로 가장 큰 자료 형으로 변환이 이루어 진다.

- 우변의 연산 결과를 좌변의 변수에 대입할 경우

· 자료 형이 작은 경우에는 좌변의 데이터 형에 일치시켜 변환되어 저장된다.

· 자료 형이 큰 경우에는 컴파일 오류가 발생한다.

 

● 캐스팅에 의한 형 변환(Casting conversion)

명시적인 형 변환(Explicit conversion) 이라고도 하며 수식에서 평가된 값이나 변수가 갖는 자료 형을 강제로 다른 자료 형으로 변환하는 것을 의미한다.

 

- 형식

(자료형) 변수 또는 연산식;

 

산술 자료 형과 boolean 자료 형, 산술 자료 형과 참조 형 등은 서로 형 변환을 할 수 없다.

 

 연산자 우선순위

 

연산자 우선순위

 

● 연산자 우선순위 일반적 원칙

- 연산 식에서 사용된 괄호를 먼저 처리한다.

- 각 연산자에 부여된 우선순위에 의해 처리된다.

- 우선순위가 동일한 경우 결합성에 의해 처리된다.

- 증가(++)와 감소(--) 연산자는 연산자의 위치에 따라 처리되는 순서가 다르다.

 

● 연산자 우선순위

728x90
반응형

'코 딩 공 부 > J A V A' 카테고리의 다른 글

JAVA - 배열  (0) 2021.04.12
JAVA - 제어문  (0) 2021.03.24
JAVA - 기본 프로그램(2)  (0) 2021.03.08
JAVA - 기본 프로그램(1)  (0) 2021.03.05
JAVA - 자바 개요  (0) 2021.03.03