* 조심!!
--> 사칙연산을 할때 조심해야 할 것은 컴퓨터는 같은 타입끼리만 계산할 수 있다. 그래서 예를들어 int로 계산할 때에는 버려지는 부분이 생길수도 있다.
* 참고!!
--> 비교연산자 > < >= <= == != --> 가장 기본적인 내용들이라서 따로 정리는 하지 않는다. 필요하면 수학책을 찾아보도록!! --> =(대입연산자), == (비교연산자) 의 차이만 알아두자!
public static void main(String args[]) {
int a = 1_000_000; // 1,000,000 1백만
int b = 2_000_000; // 2,000,000 2백만
long c = a * b; // a * b = 2,000,000,000,000 ?
long d = (long)a * b;
System.out.println(c);
System.out.println(d);
}
--> c에서 -값이 나온것을 보면 범위를 벗어나 형변환을 실시하지 않았을 시에는 rollback 느낌으로 계속 돌아서 다른 값이 출력되는 것을 확인 할 수 있다.
--> 전위형 후위형으로 j = ++i; j = i++; 의 식으로 쓴다. 딱히 차이는 없다. 그냥 값을 언제 저장하고 더하는가에 대한 차이만 있을 뿐이다.
public static void main(String args[]) {
double pi = 3.141592;
System.out.println(pi);
System.out.println(pi*1000);
System.out.println(Math.round(pi*1000));
System.out.println(Math.round(pi*1000)/1000);
System.out.println(Math.round(pi*1000)/1000.0);
System.out.println((int)(pi*1000));
System.out.println((int)(pi*1000)/1000);
System.out.println((int)(pi*1000)/1000.0);
}
--> 예를 들어 1000을 곱해서 반올림하고 싶은 부분까지 이동 한 후에 나머지 값을 잘라내는 느낌으로 보면된다.
-->따로 크게 정리할 부분은 없는 것 같다. 초등학교때 배운 나누기를 못하는 사람은 없기 떄문이다.
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2); // true
System.out.println(str1.equals(str2)); // true
String str1 = new String("abc");
String str2 = new String("abc");
System.out.println(str1==str2); // false
System.out.println(str1.equals(str2)); / true
--> 두개의 차이점은 6장, 9장에서 자세하게 배운다. 일단은 1번으로 쓰도록 하자
1. x > 10 && x < 20
2. 10 < x && x < 20 (2번째 경우가 가독성이 조금 더 좋아진다. 하지만 1번도 틀린 문법은 아니다)
--> i%2==0 || i%3==0
--> ( i%2==0 || i%3==0 ) && i%6!=0 --> and 와 or이 섞여있는 경우에는 가로를 쳐서 명확하게 해주는 것이 좋다.
-->'0' <= ch && ch <= '9'
--> ('a' <= ch && ch <= 'z') || ('A' <= h && <= 'Z') --> 유니코드에서 문자들이 연속적으로 나열되어 있기 때문에 사용가능한 표현이다.
--> ch < 'a' || ch > 'z' <--> !('a' <= ch && ch <= 'z')
소문자가 아닌 경우를 표현하고 싶었는데 이럴 경우 true를 false로 바꾸는 방향으로 하는 것이 훨씬 가독성이 좋다.
result = (x > y) ? x : y;
if (x > y)
result = x; // x > y가 true일 때
else
result = y; // x > y사 false일 때
--> 실제 실무에서 많이 쓰기 떄문에 다양한 변형에 대해서도 익숙해 질 필요가 있다.
*추신!!
-->마지막으로 대입연산자는 따로 정리 하지 않았다. 그냥 빈공간에 값을 대입한다는 느낌이기 때문이다.
chapter3에서 가장 주의해야 할 것은 값을 비교할 떄 양쪽에 값들의 type이 일치해야 한다는 것이였다. 컴퓨터는 단순하다. 그러므로 하나하나 지시를 해줘야지 된다. 또한 조건연산자나 논리 연산자의 경우 코드상에서 적용해야 될 때가 많다. 다양한 경우들을 실습해봐야겠다.