자바
자바의 연산자들-2
목표는 커리
2021. 6. 13. 16:13
728x90
SMALL
관계 연산자
- 두 항의 관계를 나타내며 비교 연산자라고도 부름
- true, false로 나타남
연산자 | 기능 |
---|---|
> | 왼쪽 항이 크면 참, 아니면 거짓 |
< | 왼쪽 항이 작으면 참, 아니면 거짓 |
>= | 왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓 |
<= | 왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓 |
== | 왼쪽 항과 오른쪽 항이 같으면 참, 아니면 거짓 |
!= | 왼쪽 항과 오른쪽 항이 다르면 참, 아니면 거짓 |
논리 연산자
- true, false로 나타남
연산자 | 기능 |
---|---|
%% (논리 곱) | 두 항이 모두 참인 경우에만 결과 값이 참, 아니면 거짓 |
|| (논리 합) | 두 항 중 하나의 항만 참이면 결과 값을 참, 두 항이 모두 거짓이면 거짓 |
!(부정) | 단항 연산자, 참인 경우는 거짓으로, 거짓인 경우는 참으로 바꿈 |
논리 연산에서 모든 항이 실행되지 않는 경우 - 단락 회로 평가
- 논리 곱에서 앞의 항의 결과가 false면 뒤 항의 결과 평가 하지 않음
- 논리 합에서 앞의 결과가 true면 뒤 항의 결과 평가 하지 않음
package ch12;
public class LogiccalTest {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value = ( (num1 = num1 + 10) < 10 ) && ( ( i = i + 2) < 10);
System.out.println(value);
System.out.println(i);
System.out.println(num1);
}
}
>
false
2
20
- i가 증가할 것이라 생각했지만 앞이 false라 뒤에 연산은 수행하지 않아서 i값은 변하지 않았음
package ch12;
public class LogiccalTest {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value = ( (num1 = num1 + 10) < 10 ) || ( ( i = i + 2) < 10);
System.out.println(value);
System.out.println(i);
System.out.println(num1);
}
}
>
true
4
20
- 이건 앞의 항이 false기 때문에 뒤에 항을 수행함
package ch12;
public class LogiccalTest {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value = ( (num1 = num1 + 10) > 10 ) || ( ( i = i + 2) < 10);
System.out.println(value);
System.out.println(i);
System.out.println(num1);
}
}
>
true
2
20
- 이건 앞이 true여서 뒤에 항을 수행하지 않음
728x90
LIST