///////
Search

연산자

날짜
2022/09/21
텍스트

연산자

연산자의 결합 방향을 주의해야 한다.

연산자의 결합 방향이 오른쪽인지 왼쪽인지 주의할 것!

최우선 연산자 ()를 사용하자.

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에 값을 집어넣는다.