본문 바로가기
프로그래밍/JAVA

07 연산자

by 윤지(●'◡'●) 2021. 3. 24.
반응형


연산자

연산자는 기능이 있는 특수문자 또는 단어이다.

 

여기서 중요한것은! 연산자의 우선순위이다

 

<최단산쉬관리삼대>로 외우면 쉽게 외울 수 있다 :)

 

우선 연산자

항 연산자(항 1개)

---------------------

이항 연산자(항 2개)

술 연산자

프트 연산자

계 연산자

연산자

---------------------

항 연산자(항 3개)

입 연산자

 

여기서 또 하나 알고 가야하는 것은 결합성이다.

 

* 결합성 

한 문장 안에 같은 우선순위의 연산자가 있을 때맞는 방향으로 결합되는 성질
(1+2)+3+4
(3+3)+4
6+4
= 10
보통 왼쪽에서 오른쪽으로 이루어진다.

 

01 최우선 연산자

▪ ( ) 괄호, .(점)

 

 

02 단항 연산자

 항이 1개인 연산자

        ⁂항이란? 연산자 양 옆의 값 ex)5+6 ->5와6

형변환 연산자

!A : A의 결과가 참이라면 거짓으로, 거짓이라면 참으로 바뀐다.

 

 

03 이항 연산자

▪ 항이 2개인 연산자

▪ 산술 연산자, 쉬프트 연산자, 관계 연산자, 논리연산자가 있다.

 

 

1) 산술 연산자

 

+, -, *, /, %

 

% : 나머지 값을 구하는 연산자 이다.

ex) 4%2 = 0

 

 

2) 쉬프트 연산자

 

- 비트를 이동하는 연산자 이다.

- 빈 자리는 부호비트로 채워진다.

<<

a<<b : a를 좌로 b만큼 비트이동

⁂예시
10<<1 --> ...00001010 --> ...00010100 --> 20(10진법)

>>

a>>b : a를 우로 b만큼 비트이동

⁂예시
10>>1 --> ...00001010 --> ...00000101 --> 5(10진법)

 

 

3) 관계 연산자

 

읽을땐 왼쪽이 기준이다.


>, < : 초과, 미만
>=, <= : 이상, 이하
== : 같다
!= : 같지않다

 

 

4) 논리 연산자

 

A, B는 조건식으로 가정

A&&B : 두 조건식의 결과가 둘다 참이면 참

A||B : 두 조건식의 결과중 하나라도 참이면 참 

 

 조건식이란?

- 조건 연산자라고도 부르며, 결과가 참 또는 거짓, 둘 중 하나로 나오는 식
- 관계 연산자, 논리 연산자 등의 조합으로 만들어 진다.
- 자바에서는 0과 1 대신에 false, true 라는 값을 사용한다.
- 논리형 = boolean = 1byte = true, false

 

5) 비트 연산자

 

비트란 컴퓨터 언어인, 1과 0을 저장할 수 있는 최소단위 이다.

 

1byte = 8bit

 

10진법         2진법(bit)             bit
10      >      [1][0][1][0]    >       4bit
11      >      [1][0][1][1]    >       4bit

&(AND) 논리곱

- 두 비트가 모두 1일 때 1
10&11
10 > [1][0][1][0]
11 > [1][0][1][1]
----------------------------------
        T  F  T  F    -->    1 0 1 0(2진법)   -->   10(10진법)  

| (OR) 논리합

- 둘 중 하나라도 1이면 1
10|11 --> 1011(2진법) --> 11(10진법)

^(XOR) 베타논리합

- 두 비트가 서로 다르면 1
10^11 --> 0001(2진법) --> 1(10진법)

~(NOT) 논리부정  >> 이건 단항 연산자 이다 :)

- 0은 1로, 1은 0으로 바꾼다
~10 --> 0101(2진법) --> -11(10진법)
논리부정의 공식은 ~a = -(a+1) 이다.

보다 쉽게 이해 하기 위해 아래 사진을 첨부 하겠습니다 :)

 

 

 

 

03 삼항 연산자

▪ 항이 3개인 연산자

 

(조건식)?(참일때의 값) : (거짓일때의 값) 의 형식으로 사용한다. --> 값을 넣는것임. 메소드 X
★삼항 연산자는 사용부분 통채로가 값이다.
경우의 수가 두가지 값으로 나올 때 사용하는것이 좋다.

 

코드

Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
		
String result = (num>10)?"10보다 큰 수 입니다.":"10보다 작은 수 입니다.";
System.out.println(result);

결과

정수 입력 : 9
10보다 작은 수 입니다.
정수 입력 : 12
10보다 큰 수 입니다.

 

 

연산자의 우선 순위를 아래 사진을 보고 다시 한번 정리해보자 (❁´◡`❁)

 

 

 

 

사진 출처 : http://www.tcpschool.com/
               자바의 정석(남궁 성 저자)

 

반응형

댓글