[윤성우의 열혈 Java 프로그래밍] Chapter 04 - 연산자(Operators)
카테고리: Java lang
태그: java
04-1. 자바에서 제공하는 이항 연산자들
- 대입 연산자와 산술 연산자: =, +, -, *, /, %
- 복합(Compound) 대입 연산자
- 관계 연산자: <, >, <=, >=, ==, !=
- 논리 연산자: $$, ||, !
- 논리 연산자 사용 시 주의할 점: SCE
연산의 특성 중 Short-Circuit Evaluation이라는 것이 있다.
연산의 효율 및 속도를 높이기 위해서 불필요한 연산을 생략하는 행위
public class SCE {
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
boolean result;
result = ((num1 += 10)<0) && ((num2 += 10) > 0); // 앞 조건문에서 false를 반환하고, and 연산이 수행되기 때문에 뒷 연산이 생략된다.
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2 + '\n');
result = ((num1 += 10) > 0) || ((num2 += 10) > 0); // 앞 조건문에서 true를 반환하고, or 연산이 수행되기 때문에 뒷 연산이 생략된다.
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
}
}
이러한 연산을 가리켜 SCE(Short-Circuit Evaluation)이라 한다.
04-2. 자바에서 제공하는 단항 연산자들
- 부호 연산자
short num1 = 7;
short num2 = (short)(+num1); // 형 변환 하지 않으면 오류 발생
short num3 = (short)(-num1); // 형 변환 하지 않으면 오류 발생
자바는 기본적으로 정수형 연산을 int형으로 진행하고 그 결과도 int형으로 반환한다.
단항 연산도 마찬가지이기 때문에 형 변환을 해주어야한다.
- 증가 및 감소 연산자: Prefix ++, Prefix -- & Postfix ++, Postfix --
public class PrePostfixOp {
public static void main(String[] args) {
// pre는 증가 후 출력
int num1 = 7;
System.out.println(++num1);
System.out.println(++num1);
System.out.println(num1);
System.out.println();
// post는 출력 후 증가
int num2 = 7;
System.out.println(num2++);
System.out.println(num2++);
System.out.println(num2);
}
}
댓글 남기기