5/9일 사전캠프 2일차 Part 2 (연산자)

2023. 5. 9. 20:09개발자 공부/Java

● 연산자와 피연산자 

- 연산자 : 연산을 수행하는 기호 ( +, -, *, / )

- 피연산자 : 연산의 연산 수행 대상

    ex) 3 + 5 → "3" , "5" (피연산자) / "+" (연산자)

   "모든 연산자는 연산결과를 반환한다." (즉, 연산결과를 반환하지 않으면 연산자가 아니다)

연산자의 종류

- 산술 연산자 : 사칙연산으로 계산을 담당

- 비교연산자 : 좌측과 우측에 있는 값을 배교하는 것 

- 논리 연산자 : && "그리고", || "또는", ! "아니다" 를 뜻한다

- 대입 연산자 : "=" 대입 연산자를 기준으로 오른쪽에 있는 식을 왼쪽에 대입한다

 

● 연산자의 방향과 우선순위

"하나의 식(expression)에 연산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행 할지를 자동 결정하는 것 하나의 식에 연       
  산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행 할지를 자동 결정하는 것"

    ex) 5 + 3 * 4 의 계산 순서 → ① 3 * 4  5 + 12

   but, 연산 순서를 수동으로 결정하고 싶다면 괄호() 를 사용하면 된다.

    ex) (5 + 3)* 4 → ① 5 + 3 8 * 4

 

- 연산의 방향과 우선순위

1) 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.

2) 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다.

3) 단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽

4) 복잡한 연산식에는 괄호 ()를 사용해서 우선순위를 정한다.

 

● 증감 연산가와 부호 연산자 

- 증감 연산자 

  증가 연산자 ( + + ) : 피연사자의 값을 1 증가 시킨다. 

  감소 연산자 ( - - ) : 피연산자의 값을 1 감소 시킨다. 

 

증감 연산자가 독립적으로 사용된 경우, 전위형과 후위형의 차이는 없습니다
 (++k; k++; = > 값 동일++k; k++; = > 값 동일)

- 부호 연산자

'-' 는 피연산자의 부호를 반대로 변경합니다.
'+' 는 아무런 일도 하지 않습니다. (실제 사용X)

 

● 형변환 연산자와 자동 형변환 

   - 형변환 : 변수 또는 상수의 타입을 다른 타입으로 변환 하는 것 

                    (타입 "변경할 타입 기입") 피연산자 

  - 자동 형변환 : 프로그램 실행 도중에 자동적으로 형변환 (타입변환) 이 일어나는 것

                          자동 형변환은 작은 메모리 크기의 데이터 타입을 큰 메모리 크기의 데이터 타입으로 변환하는 행위

                          ex) float f = 1234; → int 타입의 값을 float 타입의 변수에 저장 (형변환이 생략 되었지만 상대적으로 int 타입이 float 타입                                                                                                                                   보다 크기가 작기 때문에 가능)
                                float f = (float) 1234; → 사실 변수와 리터럴의 타입을 일치 시켜줘야 한다