Java_04 ) Operator 연산자
2025. 8. 21. 08:33

    <Java 연산자>


1. 논리부정 연산자 (!)

논리부정 연산자는 truefalse로, falsetrue로 바꿔주는 연산자

System.out.println("true의 부정 : " + !(true));    // false
System.out.println("false의 부정 : " + !(false));  // true

int num1 = 10, num2 = 5;
System.out.println("값1 > 값2 : " + (num1 > num2));      // true
System.out.println("!(값1 > 값2) : " + !(num1 > num2));  // false


2. 증감연산자 (++, --)

변수의 값을 1씩 증가시키거나 감소시키는 연산자입니다. 위치에 따라 동작이 달라진다.

<전위연산 vs 후위연산>

구분 연산자 동작 방식
전위연산 ++변수, --변수 선 증감, 후 처리
후위연산 변수++, 변수-- 선 처리, 후 증감

 

int num1 = 0;
System.out.println(num1++);  // 0 출력 후 num1을 1로 증가
System.out.println(++num1);  // num1을 2로 증가 후 2 출력
System.out.println(num1--);  // 2 출력 후 num1을 1로 감소
System.out.println(--num1);  // num1을 0으로 감소 후 0 출력


3. 산술연산자와 복합대입연산자

기본 산술연산자

연산자 의미
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

복합대입연산자

산술연산자와 대입연산자를 결합한 형태

연산자 의미
+= a = a + b
-= a = a - b
*= a = a * b
/= a = a / b
%= a = a % b

 

int a = 10;
a += 5;  // a = a + 5와 동일, a = 15
a *= 2;  // a = a * 2와 동일, a = 30

4. 비교연산자 (관계연산자)

두 값을 비교하여 boolean 타입의 결과를 반환

분류 연산자 의미
대소비교 < 작다
  > 크다
  <= 작거나 같다
  >= 크거나 같다
동등비교 == 같다
  != 다르다
int a = 10, b = 25;
System.out.println("a == b : " + (a==b));      // false
System.out.println("a <= b : " + (a<=b));      // true
System.out.println("(a*2) > (b/5) : " + ((a*2) > (b/5))); // true (20 > 5)

원시타입 vs 참조타입 비교 주의사항

원시타입 비교

int x = 10, y = 10;
System.out.println(x == y);  // true (값 비교)

참조타입 비교 (String)

// 문자열 리터럴 - String Pool에서 재사용
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2);  // true (같은 주소 참조)

// new 키워드로 생성 - 새로운 객체 생성
String str3 = new String("hello");
System.out.println(str1 == str3);  // false (다른 주소)
System.out.println(str1.equals(str3));  // true (값 비교)

 

  >>>  String 비교 시에는 반드시 equals() 메서드를 사용

String 비교의 올바른 방법

// 올바른 문자열 비교
String str1 = "hello";
String str3 = new String("hello");

// equals() 메서드 사용
System.out.println(str1.equals(str3));    // true
System.out.println("hello".equals(str3)); // 리터럴도 가능

특이케이스: 문자와 숫자 비교

System.out.println('A' + 0);   // 65 (ASCII 코드)
System.out.println('A' > 70);  // false (65 > 70)


5. 논리연산자

두 개의 논리값을 연산하여 논리값을 반환합니다.

<논리연산자 종류>

연산자 의미 설명
&& AND 모든 조건이 true일 때 true
|| OR 하나라도 truetrue

Ex : 문자 분류기

Scanner sc = new Scanner(System.in);
System.out.print("문자 하나 입력 : ");
char ch = sc.next().charAt(0);

boolean isUpper = ch >= 'A' && ch <= 'Z';
boolean isLower = ch >= 'a' && ch <= 'z';

System.out.println("알파벳인가? " + (isUpper || isLower));
System.out.println("대문자인가? " + isUpper);
System.out.println("소문자인가? " + isLower);


6. 삼항연산자 (조건연산자)

조건에 따라 값을 선택하는 연산자입니다.

표현식

조건식 ? 참일_경우_값 : 거짓일_경우_값

 

int num = (3 < 10) ? 10 : 20;  // num = 10

중첩 삼항연산자 (양수/음수/0 판별) 추천x 

Scanner sc = new Scanner(System.in);
System.out.print("정수값 입력: ");
int num = sc.nextInt();

String result = (num == 0) ? "0" : (num > 0) ? "양수" : "음수";
System.out.println(result);


 

 

핵심 포인트

  1. 증감연산자: 전위/후위의 차이점 숙지
  2. String 비교: equals() 메서드 사용 필수
  3. 논리연산자: 조건 결합시 활용
  4. 삼항연산자: 간단한 조건 분기에 유용

 

 

'Java' 카테고리의 다른 글

Java_06) Loop - 반복문  (4) 2025.08.26
Java_05) Control - 조건문(제어문)  (1) 2025.08.26
Java_03 ) Type Conversion - 형변환  (1) 2025.08.20
Java_02) Output, Input 입출력  (2) 2025.08.19
Java_01) Variable 변수  (5) 2025.08.18