연산자

연산자 : 연산에 사용되는 표시나 기호

피연산자 : 연산자와 함께 연산되는 데이터

연산자 종류 연산자 피연산자 수 산출값 기능
산술 + - * / % 이항 숫자 사칙연산 및 나머지계산
부호 + - 단항 숫자 음수와 양수의 부호
문자열 + 이항 문자열 두 문자열을 연결
대입 = += -= *= /= %= 이항 다양 우변의 값을 좌변의 변수에 대입
증감 ++ -- 단항 숫자 1만큼 증가/감소
비교 == != > < >= <= instanceof 이항 boolean 값의 비교
논리 ! & | && || 단항
이항
boolean 논리 부정, 논리곱, 논리합
조건 (조건식) ? A : B 삼항 다양 조건식에 따라 A 또는 B중 하나를 선택

복합적으로 구성된 연산식의 연산은 우선순위에 따라 수행

단항 → 이항 → 삼항
산술 → 비교 → 논리 → 대입

우선순위 같은 연산자는 왼쪽에서 오른쪽방향으로 수행

이항연산자

대부분의 연산자. 산술연산자, 관계연산자, 논리연산자, 비트연산자, 대입연산자

산술연산자

종류 : + - / * %

사칙연산과 마찬가지로 /, *가 우선 적용된다.

public static void main(String[] args) {
int a = 5;
int b = 3;
System.out.println("+\t"+(a+b));
System.out.println("-\t"+(a-b));
System.out.println("/\t"+(a/b));
System.out.println("*\t"+(a*b));
System.out.println("%\t"+(a%b));
}
더보기
+    8
-     2
/     1
*     15
%    2

관계 연산자

종류 : > < == <= >= !=

Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
BinaryOperator obj = new BinaryOperator();
obj.method1();
}
public void method1() {
System.out.println("중간 시험 점수 입력");
int score1 = sc.nextInt();
System.out.println("기말 시험 점수 입력");
int score2 = sc.nextInt();
if(score1+score2 >= 90) {
System.out.println("A");
} else {
System.out.println("F");
};
}

논리연산자

종류 : && || ! ^

&& : 논리곱, A B 중 하나라도 거짓이면 거짓

|| : 논리합, A B 중 하나라도 참이면 참

^ : A, B 하나는 true이고 다른 하나가 false일 경우에만 연산 결과가 참 

public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a&&b);
System.out.println(a||b);
System.out.println(!a||b);
}
더보기
false
true
false

그 외

& | ^ ~

  & |
45 00101101 00101101
25 00011001 00011001
  00001001 00111101
public static void main(String[] args) {
int a = 45;
int b = 25;
System.out.println(a&b);
System.out.println(a|b);
System.out.println(a^b);
System.out.println(~a);
}
더보기

9
61
52
-46

Shift Operator (비트 연산자)

종류 : >> << >>>

연산 속도가 빠르다.

public static void main(String[] args) {
System.out.println(12>>2);
System.out.println(12<<2);
}
>>2 오른쪽으로 2칸 이동
1100 > 0011
2의 배수의 나눗셈만큼 ( / 2^2)
<<2 왼쪽으로 2칸 이동
1100> 110000
2의 배수의 곱셈 ( * 2^2)

 

대입연산자

종류 : = *= /= += -= %=

결과값을 왼쪽 변수에 저장

public static void main(String[] args) {
int a = 10;
int b = 4;
System.out.println("a+=b\t" + (a+=b)); //a = a+b (10 + 4)
System.out.println("a-=b\t" + (a-=b)); //a = a-b (14 - 4)
System.out.println("a*=b\t" + (a*=b)); //a = a*b (10 * 4)
System.out.println("a/=b\t" + (a/=b)); //a = a/b (40 / 4)
System.out.println("a%=b\t" + (a%=b)); //a = a%b (10 % 4)
}
더보기
a+=b   14
a-=b   10
a*=b   40
a/=b   10
a%=b   2

단항연산자

부호연산자, 증감연산자, 논리연산자 ( ! )

부호연산자

종류 : + -

부호 변환

public static void main(String[] args) {
int a = 10;
int num = -a;
System.out.println(num);
}

증감연산자

++변수 다른 연산을 수행하기 전에 1을 증가 시킴 (계산 후 대입)
--변수 다른 연산을 수행하기 전에 1을 감소 시킴
변수++ 다른 연산을 수행한 후에 1을 증가 시킴 (먼저 대입)
변수-- 다른 연산을 수행한 후에 1을 증가 시킴
public static void main(String[] args) {
int val;
int res;
val =10;
res = ++val;
//val+=1;
//res = val;
System.out.println("val : "+val); // val = 11
System.out.println("res : "+res); // res = 11 (더해진 후에 대입)
val =10;
res = val++;
//res = val;
//val+=1;
System.out.println("val : "+val); // val = 11
System.out.println("res : "+res); // res = 10 (대입한 후에 더해짐)
}

삼항연산자

3개의 연산자를 필요로하는 연산

삼항 연산자는 ? 앞의 조건식의 결과에 따라 콜론(:) 앞 뒤의 피연산자가 선택됨.

조건연산식이라고도 함

조건 ? "참" : "거짓"
public static void main(String[] args) {
String str = true ? "참" : "거짓";
System.out.println(str);
}

 

'JAVA > JAVA BASIC' 카테고리의 다른 글

[JAVA] 반복문 - for문  (0) 2024.03.11
[JAVA] 조건문  (0) 2024.03.08
[JAVA] 타입 변환 & 시스템 입출력  (0) 2024.03.06
[JAVA] 변수와 기본타입 & 제어문자  (0) 2024.03.05
[JAVA] 단축키, 기본 설정  (0) 2024.03.04