■ 논리 연산자
-
논리곱 (&&, &) - 피연산자가 모두 true일 경우에만 연산 결과가 true 이다.
- System.out.println(b1 && b2); -> b2가 false 이므로 결과는 false
- System.out.println(b1 && b3); -> b1과 b2 모두 true 이므로 결과는 true
-
논리합 (||,|) - 피연산자 중 하나만 true이면 연산 결과는 true 이다.
- System.out.println(b1 || b2); -> b1 이 true이므로 결과는 true 이다.
-
배타적 논리합 () -> 피연산자가 서로 다른 값일 경우만 연산 결과가 true 이다.
- System.out.println(b1 ^ b2); -> b1은 true, b2는 false로 서로 다르므로 결과는 true 이다.
- System.out.println(b1 ^ b3); -> b1, b3 모두 true로 서로 같다. 결과는false 이다
-
논리 부정 (!) -> 피연산자의 논리값을 바꾼다. true는 false로 false는 true로 바꾼다.
- System.out.println(!b1); -> b1 이 true 이므로 결과는 false 이다.
- System.out.println(!b2); -> b1 이 false 이므로 결과는 true 이다.
package main;
public class mainClass {
public static void main(String[] args) {
// 논리 연산자(true/false)
/*
&& AND 그리고
|| OR 또는
! NOT ~아닌
제어문과 같이 사용(if, while, do while)
< > <= >= == : 비교 연산자
*/
int number = 0;
/*
AND
0 0 -> 0 (0이 false, 1이 true)
0 1 -> 0
1 0 -> 0
1 1 -> 1
*/
System.out.println( number > 0 && number < 10);
/*
OR
0 0 -> 0
0 1 -> 1
1 0 -> 1
1 1 -> 1
*/
System.out.println( number > 0 || number < 10);
/*
(제일 헷깔리는 연산, 하지만 단순하게 사용된다, 사용 많이 한다)
NOT 0 -> 1, 1 -> 0 으로 만들어주는 기능
*/
number = 5;
System.out.println(number == 5);
System.out.println(number != 5);
System.out.println( !(number > 5 && number < 10) );
System.out.println( !(number < 5) );
// number >= 5 와 같은 뜻임
■ 삼항 연산자 :: 조건에 따라서 값을 대입한다.
▶ value = ( 조건 ) ? '값1' : '값2' ;
==> 항이 3개 있다고 해서 3항 연산자이다. 조건에 따라 값1을 넣거나 값2를 취한다.
조건식 ? 식1 : 식2
-> true이면 식1, false이면 식2
class Ex3_17 {
public static void main(String args[]) {
int x, y, z;
int absX, absY, absZ;
char signX, signY, signZ;
x = 10;
y = -5;
z = 0;
absX = x >= 0 ? x : -x; // x의 값이 음수이면, 양수로 만든다
absY = y >= 0 ? y : -y;
absZ = z >= 0 ? z : -z;
signX = x > 0 ? '+' : ( x==0 ? ' ' : '-'); // 조건 연산자를 중첩
signY = y > 0 ? '+' : ( y==0 ? ' ' : '-');
signZ = z > 0 ? '+' : ( z==0 ? ' ' : '-');
System.out.printf("x=%c%d%n", signX, absX);
System.out.printf("y=%c%d%n", signY, absY);
System.out.printf("z=%c%d%n", signZ, absZ);
}
}
=====
x=+10
y=-5
z= 0
char c;
c = (number > 0) ? 'Y' : 'N';
System.out.println("c = " + c);
int n;
n = (number < 5) ? 10:20;
System.out.println("n = " + n);
String str;
str = (number > 3) ? "3보다 크다" : "3보다 작다";
System.out.println("str = " + str);
char str2;
str2 = (n <= 3)? 'O' : 'X';
System.out.println("str2 = " + str2);
}
}
**3가지의 경우를 나타낼 수 있는 삼항 연산자
System.out.println(num > 0 ? " 양수 ":(num < 0 ? " 음수 " : "0"));
'개발 > JAVA' 카테고리의 다른 글
[JAVA] #09. 비트 연산자(bitwise operator), 시프트 연산자 (0) | 2020.07.28 |
---|---|
[JAVA] #08. 자료형(Java Data Type) :: boolean, int, char, double 등 (0) | 2020.07.28 |
[JSP] #03. MVC model 1과 model 2 같은 코드로 비교(CustUser) (2) (0) | 2020.07.23 |
[JAVA&JSP] #02. MVC model 1과 model 2 같은 코드로 비교(CustUser) (0) | 2020.07.23 |
[JAVA&JSP] #01. MVC 구조 :: MODEL 1 & MODEL 2 (0) | 2020.07.22 |