티스토리 뷰
1. 관계(비교)연산자
- 이항 연산자
- 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 함
- 조건문, 반복문의 조건식으로 많이 사용 됨
- 관계 연산자를 주어로 봐야 함.
int num1 = 5;
int num2 = 3;
boolean value = ( num1 > num2 );
1. System.out.println(value);
2. System.out.println(3 == 5);
3. System.out.println(6 != 5);
1. true
2. false
3. true
가 출력됨.
2. 논리 연산자
- 관계 연산자와 혼합하여 많이 사용 됨
- 연산의 결과가 true(참), false(거짓)으로 반환 됨
종류 3가지
논리곱 ---> && (엠퍼센트,엠퍼센트) : and 개념
논리합 ---> || (버티컬 바, 버티컬 바) : or 개념
부정 --> !
int num1 = 10;
int num2 = 20;
// && 논리곱 하나라도 거짓이면 false // 전부 true 여야 true임
// T = T && T
boolean flag1 = (num1 > 0) && (num2 > 0);
System.out.println(flag1);
// 결과 : true
// F = T && F
boolean flag2 = (num1 > 0) && (num2 < 0);
System.out.println(flag2);
// 결과 : false
System.out.println("==================");
// || 논리합 하나라도 참이면 true
// T = T || F
boolean flag3 = (num1 > 0) || (num2 < 0);
System.out.println(flag3);
// 결과: true
System.out.println(!flag3);
// 결과: false
3. 빠른 평가(short circuit evaluation)
빠른 평가(short-circuit evaluation)는 논리 연산에서 첫 번째 조건이 결과를 결정하는 경우, 두 번째 조건을 평가하지 않는 자바의 특성입니다.
<논리 곱(&&)>
두 항의 결과가 모두 true일 때만 결과가 true
하나라도 false면 false
앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
<논리 합(||)>
두 항의 결과가 모두 false일 때만 결과가 false
하나라도 true 면 true
앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
int number = 5;
int index = 0;
// F = F && T
boolean result = ((number += 10) < 10) && ((index += 2) < 10);
System.out.println(number);
System.out.println(index);
// number: 15, index: 0
논리합(하나라도 거짓이면 false) => false 출력됨.
number가 false 여서 연산되어 나온 index 값(2)을 무시하고 원래 index 값(0)이 출력됨.
number = 5; //재설정
// T = F || T
result = ((number += 10) < 10) || ((index += 2) < 10);
System.out.println(number);
System.out.println(index);
// number: 15, index: 2
논리곱(하나라도 사실이면 true) => true 출력됨.
number와 index 값 둘 다 연산된 값으로 출력됨.
number = 5;
index = 0;
// T = T || F
result = ((index += 2) < 10) || ((number += 10) < 10);
System.out.println(index);
System.out.println(number);
// index: 2, number: 5
논리곱(하나라도 사실이면 true) => true 출력됨.
앞 항인 index가 true 여서 값이 2이고,
false인 number 값(15)을 무시하고 원래 number 값인 5가 출력됨.
4. 삼항 연산자(조건 연산자)
● 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨
● if (조건문)을 간단히 표현할 때 사용 할 수 있음
import java.util.Scanner; // 수입하다, 가지고 오다
Scanner sc = new Scanner(System.in); // 콘솔창에서 사용자가 키보드로 입력한 값을 받아줌
int x = sc.nextInt(); // 사용자가 입력한 정수값을 받아줌
System.out.println(x);
int y = sc.nextInt();
System.out.println(y);
// 조건식 ? 결과1 : 결과2;
int max = ( x > y ) ? x : y;
System.out.println(max);
sc.close(); // 자원 닫기
조건식( x > y ) 가 true면 x가 출력되고 거 false면 y가 출력됨.
예를 들어 )
콘솔창에 10 입력 시 x 값은 10이 출력됨.
이어서 30 입력 시 조건식 결과 false 이므로 y 값은 30이 출력됨.
<연산자 우선순위>
가장 높은 순위 연산자는 ( ), [ ]
가장 낮은 순위 연산자는 =
'Java' 카테고리의 다른 글
Java(반복문 while, do-while문) (0) | 2024.04.12 |
---|---|
Java(조건문 if, 반복문 for) (0) | 2024.04.11 |
Java(연산자 - 항, 대입, 부호, 증감과 감소, 복합 대입) (0) | 2024.04.09 |
Java(상수/리터럴, 형변환과 컴파일) (0) | 2024.04.09 |
Java(데이터 타입- 정수형/문자형/실수형/논리형) (0) | 2024.04.08 |