ch03. 연산자

728x90

ch03. 연산자

03-1. 연산자와 연산식

[연산자]

  • 산술 연산자 -> 산출 결과값 (숫자 타입)
  • 논리, 비교 연산자 -> 산출 결과값 (boolean타입) 즉, T or F

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

  • 연산식이 값 대신 사용되는 경우
int result = x + y;
  • 연산식이 피연산자로 사용되는 경우
boolean result = (x + y) < 5;

[연산 방향과 우선순위] : 다양한 연산자가 복합적으로 구성된 연산식의 연산

  • 우선순위가 같은 연산자의 연산식 -> 연산 방향 따짐(2) 단, 대입 연산자 : 왼 <- 오 방향으로 연산 수행
  • **(1) 대부분 왼->오 방향으로 연산 수행**
  • 우선순위가 다른 연산자의 연산식산술 > 비교 > 논리 > 대입
  • (2) 괄호() 사용해서 우선 처리할 연산식 묶어줌 (사용多)
  • **(1) 연산자 우선순위에 따라 연산** 단항 > 이항 > 삼항

03-2. 연산자의 종류

🟦[단항 연산자] : 피연산자 하나뿐인 연산자

<부호 연산자> : 숫자타입 피연산자에만 사용(boolean, char 제외)

(1) 리터럴 대상 부호 연산

int a = -100;

double b = -10.5;

(2) 변수 대상 부호 연산

(단, 변수 대상 부호 연산의 결과는 int 타입이므로, 결과값을 int타입 변수에 저장할 것)

-java는 기본적으로 int이하의 정수 연산을 int타입으로 변환시켜 수행한다.

byte b = 100;

int result = -b;

<증감 연산자> : boolean 제외 모든 기본 타입 피연산자에 사용

int x = 1;

int A = ++x + 10; // 12 (선 처리 후, 연산 수행)

int B = x++ + 10; // 11 (연산 처리 후, x값 1 증가)

<논리 부정 연산자> ! : boolean타입에만 사용

T -> F (토글 기능)


🟦[이항 연산자] : 피연산자가 2개인 연산자

<산술 연산자> : boolean타입 제외한 모든 기본 타입에 사용

[산술 연산자의 특징]

: 피연산자 타입이 서로 다른 경우, 규칙에 따라 타입일치 시켜서 연산함

(1) 정수 연산

(int 타입 이하의 연산) -> 모두 int타입 변환 후 연산수행

(2) 정수 연산

(long 타입 포함 연산) -> 모두 long 타입 변환 후 연산 수행

(3) 실수 연산

-> 더 큰 타입으로 변환 후 연산 수행

[char 타입의 산술 연산]

:char타입도 정수타입이라 연산이 가능하며, (->유니코드값)

               int 타입 이하의 정수연산이 되므로 연산 결과는 int타입이 된다, 

(1) char 타입 리터럴(값) 간의 연산

char c1 = ‘A’ + 1; // 컴파일러가 컴파일단계에서 수행함 (타입변환X)

(2) char 타입 변수 연산

int c3 = c1 + 1; // JVM 이 타입 변환 이후 연산 수행함

→char타입의 결과값 산출 원하면 강제 형변환시켜야 한다.

char c3 = (char) c1 + 1;

<문자열 결합 연산자>

: “문자열” 피연산자 하나라도 포함된 +연산식에서는

나머지 피연산자들이 전부 문자열로 형변환하여 문자열 결합 연산 수행된다.

<비교 연산자> ; 결과값은 boolean타입(T or F)

  • 동등비교 연산자 : 모든 타입 피연산자에 사용 O
  • 대소비교 연산자 : boolean 제외한 기본타입 피연산자에 사용O[비교연산자의 특징]
  • : 연산수행 전 피연산자 타입 일치시킴
  • [char 타입의 비교 연산] : 유니코드값으로 비교 연산 수행

<논리 연산자> : boolean타입변수 피연산자에만 사용 O, 결과값도 boolean타입 (T or F)

<대입 연산자> : 모든 연산자 중 가장 낮은 우선순위-> 가장 마지막에 수행

  • 단순 대입 연산자 : 대입
  • 복합 대입 연산자 : 연산 후 대입
  • : += , -= , *=, /=, %=, &=, |=, ^=

🟦[삼항 연산자] : 피연산자 3개인 연산자

(조건식) ? (T) : (F) ;

728x90

'Java > [문법]_Java(자바)' 카테고리의 다른 글

ch06. 클래스  (0) 2021.08.02
ch05. 참조 타입  (0) 2021.07.29
ch04. 흐름 제어문 (조건문과 반복문)  (0) 2021.07.29
ch02. 변수와 타입  (0) 2021.07.28
ch01. 자바 시작하기  (0) 2021.07.28