연산자
연산자 : 연산에 사용되는 표시나 기호
피연산자 : 연산자와 함께 연산되는 데이터
연산자 종류 | 연산자 | 피연산자 수 | 산출값 | 기능 |
산술 | + - * / % | 이항 | 숫자 | 사칙연산 및 나머지계산 |
부호 | + - | 단항 | 숫자 | 음수와 양수의 부호 |
문자열 | + | 이항 | 문자열 | 두 문자열을 연결 |
대입 | = += -= *= /= %= | 이항 | 다양 | 우변의 값을 좌변의 변수에 대입 |
증감 | ++ -- | 단항 | 숫자 | 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);
}
더보기
3
48
>>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);
}
더보기
-10
증감연산자
++변수 | 다른 연산을 수행하기 전에 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 |