본문 바로가기

JAVA

[JAVA] 기초문법 - 자바의 여러 가지 연산자 (1)

항: 연산에 사용되는 값

연산자: 항을 이용하여 연산하는 기호

단항 연산자:항이 1개 ex)++num

이항 연산자:항이 2개 ex)num1+num2;

삼항 연산자:항이 3개 ex)(5>3)? 1:0;

대입 연산자(=)

변수에 값을 대입 하는 연산자

우선순위가 가장 낮은 연산자

왼쪽 변수에 오른쪽 값을 대입

int age=24;//age변수에 24를 대입

int num=5+5//5+5계산 후 num에 대입

부호연산자

int num=10;

int num2=-num;

System.out.println(num);//10출력

System.out.println(num2);//-10출력

부호연산자를 사용한다고 해서 기존 변수의 값이 변화하는건 아니다.

부호만 바꿔주는 역할

산술 연산자

+:더하기 5+3

-:빼기 5-3

*:곱하기 5*3

/:몫 구하기 5/3

%:나머지 구하기 5%3

증가 감소 연산자

int num=10

int val=++num; //먼저 num을 1 증가시킨 후 대입

int val=--num; //먼저 num을 1 감소시킨 후 대입

int val=num++;//대입 후 num값 1 증가

int val=num--;//대입 후 num값 1 감소

관계 연산자

>:왼쪽 항이 크면 true 아니면 false 반환 num>3

<:왼쪽 항이 작으면 true 아니면 false 반환 num<3

>=:왼쪽항이 오른쪽 항 보다 크거나 같으면 true 아니면 false 반환 num>=3

<=:왼쪽항이 오른쪽 항 보다 작거나 같으면 true 아니면 false 반환 num<=3

==: 두개의 값이 같으면 true 아니면 false 반환 num==3;

!=: 두개의 값이 다르면 true 아니면 false 반환 num!=3;

논리 연산자

&&:두 항이 모두 참인 경우에만 true 반환.

boolean check=(5>3)&&(5>2);

ll:두 항 중 하나의 항만 참이면 true 반환.

boolean check=(5>3)ll(5>2);

!:단한연산자로 참이면 false로 바꾸고 false면 true로 바꿈.

boolean check=!(5>3);

단락 회로 평가

&&: 두 항이 모두 true여야 true이므로 앞에 항이 false라면 뒤에껀 계산 하지 않아도 된다.

ll:두항이 모두 false여야 false이므로 앞에 항이 true라면 뒷 항은 계산하지 않아도 된다.

실제로 계산이 실행되지 않는다!

단락 회로 평가 예제

int num1=10;

int i=2;

boolean value=((num1=num1+10)<10) &&((i=i+2)>10));

System.out.println(value);//false 출력

System.out.println(num1);//20 출력

System.out.println(i);//2 출력

앞에 항이 false이므로 뒷 항이 실행 되지 않아 i가 2가 출력된 것을 확인 가능.(뒷 항을 계산 했으면 i가 4가 되어야 함.)