Cute Running Puppy

Language/[Java] 자바 완전 정복

1주차_03. 연산자

R.silver 2022. 1. 20. 21:55
반응형

연산자

연산식은 반드시 하나의 값을 산출함

그렇기에 하나의 값이 올 수 있는 곳에는 어디든 연산식을 사용할 수 있음

 

int x = 3, y = 4;
int res = x + y; // res = 7
boolean res = (x + y) > 5; // res = TRUE

연산의 방향과 우선순위 

  1. 단항, 이항, 삼항 연산자 순서로 우선순위를 가짐
  2. 산술, 비교, 논리, 대입 연산자 순서로 우선순위를 가짐
  3. 단상, 부호, 대입 연산자를 제외산 모든 연산의 방향은 왼쪽에서 오른쪽
  4. 복잡한 연산식에서는 괄호를 사용하는 것이 좋음

단항 연산자

부호 연산자

+, -

증감 연산자

++, --

boolean 타입을 제외한 모든 기본 타입의 피연산자에 사용 가능 

증감 연산자는 위치에 따라 처리 순서가 바뀌니 사용에 유의해야 함

논리 부정 연산자

!

boolean 타입에만 사용 가능

두 가지 상태를 번갈아가며 변경하는 토글(toggle) 기능을 구현할 때에도 사용 

 


이항 연산자

산술 연산자

+, -, *, /, %

피연산자들의 타입이 동일하지 않는다면 규칙에 따라 타입을 일치시킨 후 연산을 수행함

  1. 피연산자들이 byte, short, char 타입이면 모두 int 타입으로 변환한 후 연산 
  2. 피연산자들이 모두 정수 타입이고 long 타입이 포함되어있다면 모두 long 타입으로 변환 후 연산
  3. 피연산자 중 실수 타입이 있을 경우, 허용 범위가 큰 실수 타입으로 변환한 후 연산
//잘못된 코드
byte a = 1;
byte b = 2;
byte res = a + b; // 모든 피연산자는 int로 변환된 후 연산되기에 잘못된 코드

//올바른 코드
byte a = 1;
byte b = 2;
int res = a + b; // 수정한 부분

 

문자열 결합 연산자

+

비교 연산자

<, <=, >, >=, ==, !=

boolean을 제외한 기본 타입에서 사용 가능 

조건문, 반복문 등에서 주로 사용되며 흐름을 제어함

논리 연산자 

&&, ||, &, |, ^, !

논리 연산자의 피연산자는 boolean 타입만 가능

&&와 ||는 &, | 보다 효율적으로 동작함 

-> &&는 앞의 피연산자가 false면 뒤 피연산자를 검사하지 않고 넘어감

-> || 는 앞의 피연산자가 true면 뒤 피연산자를 검사하지 않고 넘어감

 

조건문, 반복문 등에서 주로 사용됨 

대입 연산자

=, +=, -=, *=, /=, %=

오른쪽 피연산자의 값을 왼쪽 피연산자인 변수에 저장 

 


삼항 연산자

조건식 ? 값_또는_연산자_1 : 값_또는_연산자_2

조건식이 참이면 "값_또는_연산자_1"이 연산의 결과가 된다
반대로 
조건식이 거짓이면 "값_또는_연산자_2"가 연산의 결과가 된다

 

int res = 95;
char grade = (score > 90) ? 'A' : 'B'; // grade = 'A'

 

 

반응형

'Language > [Java] 자바 완전 정복' 카테고리의 다른 글

2주차_06. 클래스와 객체  (0) 2022.01.27
2주차_05. 참조 자료형 2  (0) 2022.01.27
2주차_05. 참조 자료형 1  (0) 2022.01.27
2주차_04. 제어문과 제어 키워드  (0) 2022.01.27
1주차_02. 자료형  (0) 2022.01.20