-어떠한 기능을 수행하는 기호(+,-,*,/ 등)
-피연산자(Operand)는 연사자의 작업대상이다.(변수,상수,리터럴,수식이 될수있다.)
ex) a+b 여기서 a와b가 피연산자에 해당하며, +는 연산자에 해당한다.
나는 연산자야 뭐 이과니까 기본이지 생각을 하면서 가볍게 넘겼으나, 의외로 이 연산자가 헷갈렸다.
대표적으로 &&,|| ++,-- 그래서 이번에는 한번더 뇌에 새기도록 해보겠습니다.
연산자의 우선순위:
-괄호의 우선순위가 제일 높다(당연한것.)
-산술 > 비교 > 논리 > 대입
-단항 > 이항 > 삼항
-연산자의 연산 진행방향은 왼쪽에서 오른쪽이다.->
단, 단항,대입 연산자만 오른쪽에서 왼쪽으로간다.<-
- x + 3 //단항 >이항
x + 3 * y // (*,/) >(+,-)
x + 3 > y - 2 //산술 > 비교
x > 3 && x < 5 //비교 > 논리
int result = x + y * 3; //항상 대입은 맨 마지막에한다.
단, <<, >>,<<<,>>>는 덧셈 연산자보다 우선순위가 낮다.
||, |(OR)는 &&,&(AND)보다 우선순위가 낮다.
Ex) x < -1 || x > 3 && x < 5; //일때
x < -1 || (x > 3 && x < 5); //와같다.
이제 연산자의 종류에 대해 공부해보자.
-증가연산자(++) : 피연산자의 값을 1 증가시킨다.
전위형 j = ++i; ++i; j=i; //값이 참조 되기 전에 증가시킨다. 후위형 j = i++; j=i; i++; //값이 참조된 후에 증가시킨다.
-감소연산자(--) : 피연산자의 값을 1 감소시킨다.
나머지한 나머지를 반화한다.
홀수,짝수 등 배수검사에 주로 사용한다.(ex)3,6,9게임
100%8 = 2 , -100%8 = -2
2의n승으로 곱하거나 나눈 결과를 반환한다.
장점:곱셉,나눗셈보다 빠르다
x<<n 은 x 2의 n제곱
x>>n 은 x / 2의 n제곱
8<<2 는 8 2의 2제곱 = 32
8>>2 는 8 / 2의 2제곱 = 2
피연산자를 같은 타입으로 변환한 후에 비교한다. 결과값은 true,false로 나온다.
기본형과 참조형에 사용할수있으나 String같은 참조형에는 ==,!= 만 사용가능하다.
피연산자를 비트단위로 연산한다.실수형(float,double)형을 제외한 모든 기본형에 사용가능하다.
OR연산자 (|) : 피연산자 중 어느 한 쪽이 true면 true다.
AND연산자(&) : 피연산자 양 쪽 모두 true이면 true이다.(한쪽이 false면 false)
XOR연산자(^) : 피연산자가 서로 다를 때 true다.
-비트 연산자와 동일하다.
-boolean형
int i =7;
i > 3 && i < 5 //false
i > 3 || i < 5 //true
-조건식의 연산결과가 true면 '식1'의 결과를 반환하고,false면'식2'결과를 반환한다.
-(조건식) ? 식1 : 식2
int score =50;
char grade = score >=90 ? 'A' : 'B';