이번 포스팅 주제는 자바 연산자에 대해 알아보도록 할게요.
연산자 우선순위 |
종류 |
연산자 |
1 |
최우선 연산자 |
[ ], (), .... |
2 |
단항 연산자 |
!, ~, +, -, ++, --, .. |
3 |
산술 연산자 |
+, -, *, /, % |
4 |
쉬프트 연산자 |
>>, <<, >>> |
5 |
비교 연산자 |
<, >, >=, <=, ==, != |
6 |
논리 연산자 |
&&, ||, ^ |
7 |
삼항 연산자 |
(조건) ? 참 : 거짓 |
8 |
대입 연산자 |
=, +=, -=, *= 등(산술과 조합) |
1. 산술 연산자
+, -, *, /, % : 사칙연산과 나머지 연산
% => 나머지 계산
ex) 10%3 = 1
package blog;
public class Example1 {
public static void main(String[] args) {
int a = 10;
int b = 3;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
}
}
출력 값
2. 단항 연산자
+, -, ++, --,!
1) 부호 연산자(+, -) :변수 앞에 붙어서 피연산자의 부호를 결정하거나 바꿔주는 연산자.
2) 증감 연산자(++, --) : 변수에 저장된 값을 1 증가시키거나 1 감소시키는 연산자
3) 논리 부정 연산자(!) : 참(true)을 거짓(False)으로, 거짓(False)을 참(true)으로 바꾸는 연산자.
package blog;
public class Example1 {
public static void main(String[] args) {
int a = 10;
boolean b = true;
System.out.println(+a);
System.out.println(-a);
System.out.println(++a);
System.out.println(--a);
System.out.println(!b);
}
}
출력 값
단항 연산자에서
(1) System.out.println(a++);
(2) System.out.println(++a);
의 차이점은
(1) a 값을 출력 후 ++ 연산
(2) a 값 ++연산 후 출력
즉,
++변수명 : 변수가 사용되기 전에 값 증가
변수명++ : 변수가 사용된 후 값 증가
--변수명 : 변수가 사용되기 전에 값 감소
변수명-- : 변수가 사용된 후 값 감소
3. 비교 연산자
참 또는 거짓으로 주로 반복문이나 조건문 같은 제어문에 사용된다.
종류 |
연산자 |
연산자 사용법 |
설명 |
같다 |
== |
a == b |
a와 b가 같으면 참 |
작다 |
< |
a < b |
a가 b보다 작으면 참 |
크다 |
> |
a > b |
a가 b보다 크면 참 |
작거나 같다 |
<= |
a <= b |
a가 b보다 작거나 같으면 참 |
크거나 같다 |
>= |
a >= b |
a가 b보다 크거나 같으면 참 |
같지 않다 |
!= |
a != b |
a와 b가 같지 않으면 참 |
1) 대소 비교 연산자(<, >, <=, >=)
2) 등가 비교 연산자(==,!=)
package blog;
public class Example1 {
public static void main(String[] args) {
int a = 10;
int b = 5;
//대소비교연산자
System.out.println(a < b);
System.out.println(a > b);
System.out.println(a <= b);
System.out.println(a >= b);
//등가비교 연산자
System.out.println(a == b);
System.out.println(a != b);
}
}
출력 값
4. 논리 연산자
논리 연산자에는 AND(&&), OR(||), XOR(^) 연산자가 있으며
AND(&&) : 두 항 모두 참일 경우 참
OR(||) : 두 항 중 하나라도 참이면 참
XOR(^) : 두 항이 서로 다를 경우 참 같으면 거짓
종류 |
연산자 |
사용 예 |
설명 |
AND |
&& |
A && B |
A, B 둘 다 참이면 참 |
OR |
|| |
A || B |
A, B 둘 중 하나면 참이면 참 |
NOT |
! |
!A |
A가 참이면 거짓, 거짓이면 참 |
package blog;
public class Example1 {
public static void main(String[] args) {
int a = 10;
System.out.println(5 < a && a%2==0); //T
System.out.println(15 < a && a%2==0); //F
System.out.println(5 < a || a%2==0); //T
System.out.println(15 < a || a%2==0); //T
System.out.println(15 < a || a%2==1); //F
System.out.println(15 < a ^ a%2==1); //F
}
}
출력 값
5. 비트 연산자 & 쉬프트 연산
비트 연산자는 연산하는 값을 이진수로 표현했을 때 규칙에 따라 알맞은 결과를 반환합니다.
종류 |
연산자 |
사용방법 |
설명 |
비트 AND |
& |
A & B |
둘 다 1이면 1로 |
비트 OR |
| |
A | B |
둘 중 하나라도 1이면 1로 |
비트 XOR |
^ |
A ^ B |
서로 다를 때 1로 |
비트 NOT |
~ |
~A |
비트 반전 |
LEFT SHIFT |
<< |
A << 2 |
왼쪽으로 숫자만큼 밀기(빈 공간 0으로 채움) |
RIGHT SHIFT |
>> |
A >> 2 |
오른쪽으로 숫자만큼 밀기(빈 공간은 부호값으로 채움) |
논리 RIGHT SHIFT |
>>> |
A >>> 2 |
오른쪽으로 숫자만큼 밀기(빈공간은 0으로 채움) |
2진수 => 10진수
1111 = 15
0101 = 5
조건 = 2진수 = 10진수
A | B = 1111 = 15
A & B = 0101 = 5
A ^ B = 1010 = 10
~B = 1010 = -6 // 2의 보수법 개념 정리 필요
A>>2 = 0011 = 3
A<<2 = 11 1100 = 60
B>>>2 = 0001 = 1
package blog;
public class Example1 {
public static void main(String[] args) {
int a = 15;
int b = 5;
System.out.println(a|b);
System.out.println(a&b);
System.out.println(a^b);
System.out.println(~b);
System.out.println(a>>2);
System.out.println(a<<2);
System.out.println(b>>>2);
}
}
출력 값
6. 삼항 연산자
<형식>
조건 ? 항목1 : 항목2
조건이 참일 경우 항목1 실행
조건의 거짓일 경우 항목 2 실행
package day5;
import java.util.Scanner;
public class Quiz {
public static void main(String[] args) {
String q = "Q. 다음 중 프로그래밍 언어가 아닌것은?\n"
+ "1. 자바\n"
+ "2. 파이썬\n"
+ "3. C언어\n"
+ "4. 망둥어";
Scanner sc = new Scanner(System.in);
int choice = 0; // 변수 초기화
int answer = 4; // 실제 정답
String result = "";
System.out.println(q);
choice = sc.nextInt(); // 답 받음
result = choice == answer ? "정답입니다." : "오답입니다." //정답 판별
System.out.println(result);
}
}
출력 값
choice == answer ? "정답입니다." : "오답입니다."
실제 정답은 4번이고 스캐너를 통해 choice의 값이 4일 경우 "정답입니다."
아닐 경우 "오답입니다."를 출력한다.
7. 대입 연산자
연산자 |
예 |
풀어쓴 형식 |
= |
A =1 |
A =1 |
+= |
A += 2 |
A = A + 2 |
-= |
A -= 3 |
A = A - 3 |
*= |
A *= 7 |
A = A * 7 |
/= |
A /= 3 |
A = A / 3 |
%= |
A %= 5 |
A = A % 5 |
'☕️JAVA' 카테고리의 다른 글
[JAVA] 자바 반복문 (for문 / while문 / do~while문) (0) | 2020.02.18 |
---|---|
[JAVA] 자바 조건문 (if문 / switch문) (0) | 2020.02.18 |
[JAVA] 자바 Scanner로 입력받기 (입출력 간단 예제, 암호화 간단 예제) (1) | 2020.02.18 |
[JAVA] 자바 변수(Variavle)와 자료형(Data Type) (0) | 2020.02.18 |
[JAVA] 자바 출력문(print, println, printf), 형변환 (2) | 2020.02.18 |