[혼자 공부하는 자바] 6/30 02-4~03-2

2020. 6. 30. 21:56·JAVA

 

 


 

연산자의 종류: 단항, 이항, 삼항

 

ㅇ단항 연산자 : 피연산자가 하나 / 부호연산자, 증감연산자, 논리 부정 연산자(!)

ㄴ부호 연산자: 정수or실수타입 변수에도 사용 가능, 부호연산자 결과는 int라는 거 유의!

그래서 컴파일 에러---> byte b = 100; byte result = -b;   int여야한다.

ㄴ증감 연산자: 주의할 점 -> 증감 연산자가 변수 뒤에 있으면 '다른 연산자 먼저' 처리. 앞에 있으면 증감 후 다른 연산자 처리, 예를 들어서

int x = 1; int y = 1;

int result1 = ++x + 10; int result2 = y++ + 10;

result1) x=2된 후에 result1= 12됨

result2) result2= 11된 후에 y=2됨

cf) ++i와 i=i+1의 연산속도 차이는 없다고 한다. 생성되는 바이트코드도 동일하다.

 

논리 부정 연산자

ㄴ실행 흐름의 제어 / 토글 기능의 구현시 사용.

*toggle :  참과 거짓을 번갈아가며 변경함.

 

 

ㅇ이항 연산자

ㄴ산술 연산자 (5가지)

특징: 피연산자들의 타입이 동일하지 않을 경우 타입을 일치시킨다.

째꼬만 타입들은 int로 일치시키고

long타입 있으면 모두 long타입으로 변환 후 연산한다.

실수타입이 있으면 그걸로 변환한다. (더 큰 범위인 걸로)

 

 

int int1 = 10; int int2 = 4; 

int result2 = int1 / int2;

double result3 = int1 / int2;

 

result2는 2고 result3은 2.0 넵넵 오케이

 

2.5만들기

double result3 = (int1*1.0) / int2;

double result3 = (double)int1 / int2;

등등..

 

 

 

 

 

 

cf) 변수는 메모리 위치고, 값은 바꿀 수 있음

리터럴은 값을 말한다.

 

 

 


ㅇ비교 연산자

ㄴ비교연산자에서도 연산 수행 전 피연산자의 타입을 일치시킨다. 

ㄴ한 가지 예외: float과 double의 비교 연산.

0.1 == 0.1f --> false

이유: 실수 저장 방식인 부동 소수점 방식이 0.1을 정확히 표현 불가능. 

0.1은 0.1의 근사값인 0.10000000149011612로 표현된다고 한다. 0.1보다 큰 값이다.

true로 나오려면 캐스팅해서 비교해야 한다.

 

ㅇ

기본 타입 변수 비교시에는 ==연산자를 사용하지만

참조 타입인 String 변수 비교시에는 equals() 메소드 사용한다. (5장에서 참조타입 설명 예정)

 


ㅇ논리 연산자

ㄴ AND(&&) OR(||) XOR(^) NOT(!)

ㄴ &&와 &의 산출 결과는 같지만, 전자가 더 효율적. (앞이 false면 뒤는 보지 않고 f인게 &&)

ㄴ||와 |도 위와 마찬가지다. (앞이 t면 뒤는 보지 않고 t)


대입연산자

가장 낮은 연산순위.

 

삼항연산자

(조건식(피연산자1))? (피연산자2) : (피연산자3)

t면 앞꺼 f면 뒤

ㄴ삼항연산자는 if문으로 변경해서 작성 가능 but 간결하게 쓰려면 삼항 연산자가 효율적

 


확인문제

1. b변수의 타입은 byte라서 -b가 불가능하다.  //부호연산을 하므로 결과는 int타입이 됨.

2. 결과 31 (y = 19)

3. !stop

4.

(1) pencils / students

(2) pencils % students

5. 3번째줄 --> double var3 = (double)var1/ var2;

6. (int)(value * 0.01 * 100) <<--이거 아니자나 아니 휴우 머하냐 너 저건 걍 356이지 미쳣나

//   value / 100 * 100  -->value는 int니까 어차피 /100하면 int연산

7. 2번째줄 변수 var2는 float타입이다. 그래서 세번째줄의 조건문을 var2 == 0.1f로 바꿔주어야 한다.

//float타입 0.1f는 정확히 0.1이 아니기 때문

8. (double)(lengthTop + lengthBottom) * height / 2;

//(lengthTop + lengthBottom) * height / 2.0;

9.

 

에휴 쪼곰 부끄-.- 집중하자-.-

 

휴.. 글고 double이니까 0.0만 고려해도 됐자나.... 

다시 다지우고 써보기

 

 

 

집중 집중 ㅠ0ㅠ

ㅇ비교연산자 파악 잘하기

ㅇ변수타입 잘 파악하기

 

10.

double var4 = var1*var1*(Double.parseDouble(var2+"."+var3));

 

 

11.

(1) name == "java"    name.equals("java")  ㅠㅠ문자열..메서드.. 각인!!!

(2) password == 12345

 

12. T / F

 

13. 

value += 10;

value -= 10;

value *= 10;

value /= 10;

 

14. 가

 

 


오늘 넘 많이 틀렸다 빨리 많이 익숙해지고 자연스러워지게 보자

반응형

'JAVA' 카테고리의 다른 글

[혼자 공부하는 자바] 7/02 05-1 참조타입  (0) 2020.07.02
[혼자 공부하는 자바] 7/02 04 조건문과 반복문  (0) 2020.06.30
[혼자 공부하는 자바] 6/28 02-4 변수와 시스템 입출력  (0) 2020.06.28
[혼자 공부하는 자바] 6/28 02-3 형변환  (1) 2020.06.28
[혼자 공부하는 자바] 6/28 01-1 ~ 02-2  (0) 2020.06.28
'JAVA' 카테고리의 다른 글
  • [혼자 공부하는 자바] 7/02 05-1 참조타입
  • [혼자 공부하는 자바] 7/02 04 조건문과 반복문
  • [혼자 공부하는 자바] 6/28 02-4 변수와 시스템 입출력
  • [혼자 공부하는 자바] 6/28 02-3 형변환
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
[혼자 공부하는 자바] 6/30 02-4~03-2
상단으로

티스토리툴바