20230425 TIL

2023. 4. 25. 20:00TIL

1. 오늘 한 것

자바 연산자 공부

문제 풀이

2. 공부 내용 정리

a. 증감 연산자

++,--가 앞에 붙냐 뒤에 붙냐의 차이에 대해

int a,b = 4

a=b++

System.out.println(a);

System.out.println(b); (a에 값이 먼저 반영 되고 그다음 값 증가)

System.out.println(++a*4); (출력 결과 20 ++a에서 ++가 *보다 우선 순위가 높다는 것을 알 수 있었다)

출력 결과 : 4

                  5

                  20

 

b. 형변환

정수나 상수를 다른 타입으로 변환 하는 것

final int a=97;
int b=98;
System.out.println((char) a);
System.out.println((char)b);

출력 결과 : a,b

상수도 다른 타입으로 변환 하는 것이라 명시해놓아서 문득 궁금해졌다

final을 사용했을때도 변하는지 그래서 시험해보았다

결과는 a로 출력 final은 형변환 할때 영향을 미치지 못한다

 

자동 형변환

"기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환된다."라고 한다

 

원래는 float a=1000;

 int 타입의 값이 float보다 크기가 작기 때문에 가능했지만

 float a=(float)1000; //(float가 생략 되어있던 것이였다)

 

int num = 100;
byte b2 = num; // Error 발생
byted의 범위는 -128~127로 범위를 초과하지 않는다
하지만 컴퓨터 입장에서는 num은 변수이기 때문에 확신할 수 없어서 error가 난다
그렇기에
byte b2 = (byte) num; // byte 타입으로 형변환해야 에러가 나지 않는다
 
그리고 흥미롭던 것은
byte b3 = (byte) 1000;
이것이였다 출력 결과는 -24가 나왔었는데
byte 범위를 초과해서 '손실'이 났다고 한다
오버플로우로 접근 해봤는데 -24의 값이 아니였다
그렇기에 2진수로 접근해봤다
1000을 2진수로 바꾸면
11 1110 1000
byte는 8비트이기 때문에 앞의 11두개가 없어졌을것이다
그렇기때문에
1110 1000만 남게 되었을것이고
출력결과가 -24가 나오게 되었을 것이다.
 
 

c. 산술변환

연산전에 피연산자의 타입을 일치 시키는 것

(보다 큰 타입으로 일치)

long + int  → long + long = long

(int 보다 크기가 작은 경우에는 int로 변환 됨)

byte + char → int + int

 

D. MATH 클래스

대충 이정도가 있다

round() : 실수를 소수점 첫 째자리에서 반올림정수를 반환합니다.

ceil() : 올림값을 double 형으로 반환합니다.
floor() : 내림값을 double 형으로 반환합니다.
abs() : int, double 기본형 모두 사용 가능하며 절대값을 얻습니다.
 
예제
 
double a,b =3.147;
a=Math.round(b);
System.out.println(a);

//만약 3.141592에서 3번째 소숫점 반올림 한거 구하고싶다면?

a=Math.round(b*100.0)/100.0;
System.out.println(a);
 

e.  대입 연산자

+=, -=, *= 이렇게 여러가지 있던데 

그냥 결론은 i + = 1 → i = i + 1 이다

 

int i=0, a =5;

i+=1;

 System.out.println(i);// 출력 결과 1

f.  삼항 연산자

조건식 ? 반환값1 : 반환값2이다

나도 첨에 봤을 때 뭔 소리지 했다

 c= 참 or 거짓 ? a : b;

만약 참(=1)이면 a를 c에 대입

만약 거짓(=0)이면 b를 c에 대입

 
EX) 
int a=5,b=4,c;
c= a>b? 3 : 4;
System.out.println(c);
출력 결과 : 3 

3. 내일 할 것

반복문,조건문

문제 풀이

4. 느낀점

군대 전역후 오랜만에 공부해서 그런지 머리가 돌이 되었다는 것을 느낀다

공부 효율이 너무 떨어지는것 같다

공부법 관련해서 한번 찾아봐야할것 같다

팀원들 중에서 내가 제일 못할거니까 더욱 더 노력해야겠다

5. 메모

 

'TIL' 카테고리의 다른 글

20230503  (0) 2023.05.03
20230502 TIL  (0) 2023.05.02
20230501  (0) 2023.05.01
20230427 TIL  (0) 2023.04.27
1주차 월요일 학습내용  (0) 2023.04.24