연산자
연산자의 결합 방향을 주의해야 한다.
연산자의 결합 방향이
오른쪽인지
왼쪽인지 주의할 것!
최우선 연산자 ()를 사용하자.
if(a > b || a + b * c < c )
System.out.println("영차");
if(a > b || a + (b * c) < c )
System.out.println("영차");
Java
복사
위 코드와 같은 경우 a + b * c 가 연산자 우선순위에 대해 가독성이 떨어질 수 있다.
최우선 연산자 ()를 사용해 연산 순위가 높은 부분이 어디인지 표시하자!
연산에서 Data Type이 다르다면 자동으로 Casting 된다.
String str = "JDK" + 6.0;
// result: JDK6.0
Java
복사
+ 연산에서 String과 double Type이 같이 들어왔다.
먼저 String Type "JDK" 가 나왔으므로 뒤의 double Type 6.0은 String으로 Casting 된다.
String str2 = "JDK" + 3 + 3.0;
// result: JDK33.0
Java
복사
앞의 "JDK" + 3 부분에서 3 이 String Type으로 Casting되고, 뒤의 3.0 도 String Type으로 캐스팅 된다.
String str3 = 3 + 3.0 + "JDK";
// result: 6.0JDK
Java
복사
앞의 3 + 3.0 은 int 와 double Type이다. 따라서 double Type으로 캐스팅 되고 + 연산이 진행된다.
뒤의 + "JDK" 에서는 String Type과 double Type과의 연산이므로 앞의 6.0 이 String Type으로 Casting된다.
전위연산 / 후위연산
int x = 1, y = 1;
int a = x++;
// result: 1
int b = ++y;
// result: 2
Java
복사
int a = x++; 의 경우 x를 a에 먼저 집어넣고 그 다음 x증가시킨다.
int b = ++y; 의 경우 y+1 연산 후 b에 값을 집어넣는다.