논리 값 두 개를 비교하는 연산자
둘 다 true이면 true, 나머지는 false
- 와, 그리고(~이고), ~면서, ~이면서, ~부터 ~까지, ~사이
- 예시) 사과와 바나나, 사과 그리고 바나나, 사과이면서 바나나
int a = 100;
// a는 100 이상이면서 짝수인가?
System.out.println( a >= 100 );// a는 100 이상인가?
System.out.println( a % 2 == 0);// a는 짝수인가?
System.out.println( a >= 100 && a % 2 == 0);
int b = 5;
// b는 1부터 10까지 숫자 범위에 포함되어 있는가?
// (b는 1부터 10 사이의 숫자인가?)
// (b는 1보다 크거나 같으면서 10보다 작거나 같은가?)
System.out.println( b >= 1); // b는 1 이상인가?
System.out.println( b <= 10); // b는 10 이하인가?
System.out.println( b >= 1 && b <= 10);
// System.out.println( 1 <= b <= 10); // java에서는 불가능한 수식임
둘 다 false이면 false, 나머지는 true (AND의 반대)
- 또는, ~거나, ~이거나
int c = 10;
// c는 10을 초과했거나 짝수인가?
System.out.println( c > 10 || c % 2 ==0);
논리 값을 부정하여 반대로 바꾸는 연산자
boolean bool1 = true;
boolean bool2 = !bool1; // false
System.out.println("bool1 : " + bool1); // true
System.out.println("bool2 : " + bool2); // false
Scanner sc = new Scanner(System.in);
// 정수를 하나 입력받았을 때
// 1) 해당 정수가 1부터 100 사이 값이 맞는지 확인 (1 이상 100 이하)
// 2) 1부터 100 사이 값이 아닌지 확인 (1번과 반대)
System.out.println("정수 입력 : ");
int input = sc.nextInt();
// 1 <= input <= 100
boolean result1 = input >= 1 && input <= 100;
System.out.printf("%d은/는 1 이상, 100 이하의 정수인가? : %b\n", input, result1);
// 1 이상이면서 100 이하 <-> 1 미만 또는 100 초과
boolean result2 = input < 1 || input > 100;
boolean result3 = !(input >= 1 && input <= 100);
System.out.printf("%d은/는 1 미만, 100 초과 정수인가? : %b / %b\n", input, result2, result3);
피연산자가 자신과 연산 후 결과를 다시 자신에게 대입
int a = 10;
// a를 1 증가
a++; // a = a + 1, a += 1
System.out.println("a를 1 증가 : " + a); // 11
// a를 4 증가
a += 4;
System.out.println("a를 4 증가 : " + a); // 15
// a를 10 감소
a -= 10;
System.out.println("a를 10 감소 : " + a); // 5
// a를 3배 증가
a *= 3;
System.out.println("a를 3배 증가 : " + a); // 15
// a를 6으로 나눴을 때 몫
a /= 6;
System.out.println("a를 6으로 나눴을 때 몫 : " + a); // 2
// a를 2로 나눴을 때 나머지
a %= 2;
System.out.println("a를 2로 나눴을 때 나머지 : " + a); // 0
조건식의 결과가 true이면 식1, false이면 식2를 수행하는 연산자
- 조건식: 연산 결과가 true / false인 식 (비교, 논리, 논리 부정 연산이 포함)
int num = 30;
String str1 = "num은 30보다 큰 수이다.";
String str2 = "num은 30 이하의 수이다.";
String result = num > 30 ? str1 : str2;
// 조건식 ? 식1 : 식2
// true false
// num 값이 30을 초과하면 str1
// num 값이 30을 초과하지 못하면 str2를
// result 변수에 저장
System.out.println(result);
Scanner sc= new Scanner(System.in);
System.out.print("정수 입력 : ");
int input = sc.nextInt();
// [방법 1]
String str3 = "양수 입니다.";
String str4 = "음수 입니다.";
String result2 = input >= 0 ? str3 : str4;
System.out.println(result2);
// [방법 2] 조금 더 간단하게 코드 짜는 방법
String result2 = input >= 0 ? "양수" : "음수";
System.out.println(result2 + " 입니다.");