JAVA/04_연산자
6.논리연산자 - 2진논리 / 10진논리
Y_____527
2021. 1. 12. 21:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
//*
package ex03.operator;
//<최단산쉬관논삼대콤>
public class Ex05_Operator {
public static void main(String[] args) {
//6)논리연산자
//6-1)2진 논리=> 결과: 값
int x = 7;
int y = 4;
System.out.println(x&y); //AND
System.out.println(x|y); //OR
System.out.println(x^y); //XOR
System.out.println("--------------------------");
//6-2)10진 논리=> 결과: 참/거짓
int x1 = 10, y1 = 20, z1 = 30;
boolean flag = false;
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
//AND연산
flag = (x1>y1) && (y1>z1); //&&(and)연산은 앞에것이 '거짓'이면 뒤는 수행하지 않는다 -> 여러개를 비교할 때는 거짓경우를 앞쪽에 배치해서 성능저하를 막는다
flag1 = (x1<y1) && (y1<z1); //=>true && true
System.out.println("(x1>y1) && (y1>z1) = " + flag);
System.out.println("(x1<y1) && (y1<z1) = " + flag1);
System.out.println();
//OR연산
flag2 = (x1>y1) || (y1>z1); //=>false || false
flag3 = (x1<y1) || (y1<z1); //||(or)연산은 앞에것이 '참'이면 뒤는 수행하지 않는다 -> 여러개를 비교할 때는 참경우를 앞쪽에 배치해서 성능저하를 막는다
System.out.println("(x1>y1) || (y1>z1) = " + flag2);
System.out.println("(x1<y1) || (y1<z1) = " + flag3);
}
}
//*/
|
cs |
4
7
3
--------------------------
(x1>y1) && (y1>z1) = false
(x1<y1) && (y1<z1) = true
(x1>y1) || (y1>z1) = false
(x1<y1) || (y1<z1) = true
cf)자바는 false, true가 0,1로 대체되지 않는다
->0, 0.0, null 이 아닌 모든 값들은 true(참)이다
0을 제외한 모든것은 '참'이다.
-10, 'a', "kbs", 100, 12.34,...
!(-10) --> false
!(0) --> true
& | 2진 AND | && | 10진 AND |
| | 2진 OR | || | 10진 OR |
^ | 2진 XOR | ->2진만 존재 | |
! | 10진 NOT | ->10진만 존재 |
->거짓은 0 / 참은 1 의미
ex) int x = 7; int y = 4;
println(7&4);
(x&y);
-
2진 논리 => 결과: 값
-
10진 논리 => 결과: 참/거짓
AND연산: &&(and)연산은 앞에것이 '거짓'이면 뒤는 수행하지 않는다
-> 여러개를 비교할 때는 거짓경우를 앞쪽에 배치해서 성능저하를 막는다
OR연산: ||(or)연산은 앞에것이 '참'이면 뒤는 수행하지 않는다
-> 여러개를 비교할 때는 참경우를 앞쪽에 배치해서 성능저하를 막는다