연산자
연산자는 기능이 있는 특수문자 또는 단어이다.
여기서 중요한것은! 연산자의 우선순위이다
<최단산쉬관리삼대>로 외우면 쉽게 외울 수 있다 :)
최우선 연산자
단항 연산자(항 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/
자바의 정석(남궁 성 저자)
'프로그래밍 > JAVA' 카테고리의 다른 글
09 제어문_반복문(while문,do~while문, 무한반복, for문) (0) | 2021.03.26 |
---|---|
08 제어문_조건문(if문,switch문 / 기타,누적,증감 연산자) (0) | 2021.03.25 |
06 형변환(자동 형변환, 강제 형변환, 문자열 형변환) (0) | 2021.03.23 |
05 입력메소드 (0) | 2021.03.22 |
댓글