package ch10;
public class ConstantTest {
public static void main(String[] args) {
final int MAX_NUM = 100;
final int MIN_NUM;
MIN_NUM = 0;
System.out.println(MAX_NUM);
System.out.println(MIN_NUM);
//MAX_NUM = 1000;
}
}
byte bNum = 10;
int iNum = bNum; //byte 보다 int가 크기 때문에 자연스럽게 변환됨
int iNum1 = 20;
float fNum = iNum2; // 정수형 20 - > 실수형 20.0
int iNum = 10;
byte bNum = (byte)iNum; //int보다 작은 크기의 Byte로 강제적 형 변환, 그러나 byte보다 크지 않은 숫자라서 truncate 되지 않음
double dNum = 3.14;
int iNum2 = (int)dNum; //실수형을 정수형으로 바꿨기 때문에, 소수점 잘림
package ch10;
public class TypeConversion {
public static void main(String[] args) {
double dNum = 1.2;
float fNum = 0.9F;
int iNum1 = (int)dNum + (int)fNum;
int iNum2 = (int)(dNum + fNum);
System.out.println(iNum1);
System.out.println(iNum2);
}
}
오늘의 공부 소감(10.) :
형 변환은 수학연산과 같이 괄호 안의 것을 먼저 계산한다는 것을알게되었다.
int num = 10;
System.out.println(-num);
== > 출력 결과 : -10
(- 부호가 앞에 붙지만 num 값 자체가 바뀌는것이 아님. num 값을 직접 바꾸려면 '대입연산자'를 사용해야함)
대입 연산자와 다른 연산자가 함께 쓰임
+= 사용 예시
단항 연산자
변수의 값을 1 더하거나 1 뺄 때 사용
연산자가 항의 앞에 있는가 뒤에 있는가에 따라 연산 시점과 결과가 달라짐
문장(statement)의 끝(;)을 기준으로 연산 시점을 생각해야 함
예제
(증가 연산자를 앞에 붙이면 연산 후 l value에 대입시켜서 결과값이 나옴)
(증가 연산자를 뒤에 붙이면 대입 전엔 적용되지 않음)
(-- 연산자도 마찬가지로 앞에 변수 앞에 붙이면 연산 적용 후 대입되어 출력)
오늘의 공부 소감(11.) :
증가, 감소 연산자 활용이 구체적으로 어떤 경우에 유용하게 쓰이는지 궁금하다.
관계 연산자와 혼합하여 많이 사용 됨
연산의 결과가 true(참), false(거짓)으로 반환 됨
&& : AND 연산
|| : OR 연산
! : NOT 연산
논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true
==> 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
논리 합(||)은 두 항의 결과가 모두 false 일때만 결과가 false
==> 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
예시_1
출력 결과 : i 값이 변하지 않았는데, 이유는 AND연산에서 두 값 중 하나만 false여도 결과가 정해지기 떄문에 굳이 뒤 항을 연산하지 않음 => short circuit evaluation
예시_2
출력 결과 : i 값이 변하지 않았는데, 이유는 OR연산에서 두 값 중 하나만 True여도 결과가 정해지기 떄문에 굳이 뒤 항을 연산하지 않음 => short circuit evaluation
오늘의 공부 소감(12.) :
정보처리 기능사 필시 기험때 책으로만 공부 했던 부울대수가 프로그래밍에서 어떻게 쓰이는지 궁금했었는데, 사용 방법을 알게되어 좋다.