일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- pymongo
- java
- github
- POST
- json
- Project
- fetch
- NAS
- synology
- Algorithm
- CRUD
- flask
- body
- javascript
- requests
- frontend
- mysql
- PYTHON
- venv
- beautifulsoup
- atlas
- CSS
- OOP
- openapi
- mongodb
- backend
- Crawling
- get
- portfolio
- flaskframework
Archives
- Today
- Total
wisePocket
[JAVA] 기초문법 - 연산자(Operator) - 11 본문
Java의 전체적인 연산자(Operator)를 다시 복습겸 하나씩 작성하면서 실행값을 예측하고 답을 확인했다. 그냥 쳐다보는거나 복붙하는 것과 실제로 키보드로 치는 것과 많이 다르다. 한번 더 코드블록에 담으면서 살펴보고 있다.
- 산술 연산 : 4칙연산+%,bit연산(2진법 방향n번이동)
//x + y = z
int x = 5;
int y = 10;
int z = x = y;
System.out.println(z);
// 산술 연산자
System.out.println(4 + 2); //6
System.out.println(4 - 2); //2
System.out.println(4 * 2); //8
System.out.println(5 / 2); //2
System.out.println(4 / 2); //2
System.out.println(4 % 2); //0
System.out.println(4 % 2); //0
// 우선순위 연산
System.out.println(2 + 2 * 4); // 10 *가 먼저 됨
System.out.println((2 + 2) * 4); // 16 ()가 먼저 됨
// 변수를 이용한 연산
int a = 2;
int b = 10;
int c;
c = a + b;
System.out.println(c); //12
c = b - a;
System.out.println(c); //8
c = b / a;
System.out.println(c); //5
c = b % a;
System.out.println(c); //0
- 비교 연산 : <,>, ... 크다, 작다, 같다 등 비교
// 비교 연산자
// true or false
System.out.println(10 > 9); //true
System.out.println(10 >= 9); //true
System.out.println(10 < 9); //false
System.out.println(10 <= 9); //false
System.out.println(10 == 9); //false
System.out.println(10 != 9); //true
System.out.println(10 != 10); //false
- 논리 연산 : and, or, not
// 논리 연산자
// 비교 연산의 결과값으로 받을 수 있는 boolean 값을 연결하는 연산자
// 조건을 연결 하였을 때 boolean 값들을 조합하여 true or false 값인 boolean값을 출력
// &&, ||, !
boolean flag1 = true;
boolean flag2 = true;
boolean flag3 = false;
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
// 1) 피 연산자 중 **하나라도** true이면 true => || (or)
System.out.println(flag1 || flag2); //true
System.out.println(flag1 || flag2 || flag3);//true
// 2) 피 연산자 중 **모두** true이면 true => && (and)
System.out.println(flag1 && flag2);//true
System.out.println(flag1 && flag2 && flag3);//false
System.out.println((5 > 3) && (3 > 1));//true
System.out.println((5 > 3) && (3 < 1));//false
System.out.println((5 > 3) || (3 < 1));//true
System.out.println((5 > 3) || (3 < 1));//true
// 논리 부정 연산자 (! : NOT)
System.out.println(!flag1); //false
System.out.println(!flag3); //true
System.out.println(!(5 == 5));//false
System.out.println(!(5 == 3));//true
- 대입 연산 : =, ++, -- (++, --는 값 왼쪽, 오른쪽에 따라 다르다. 인지하고 있어야 한다)
// 대입 연산자
// 변수를 바로 연산해서 그 자리에서 저장(대입하는) 연산자
// =(기본 대입 연산자), +=, -=, *= ...(복합 대입 연산자)
int number = 10;
number = number + 2;
System.out.println(number);
number = number - 2;
System.out.println(number);
number = number * 2;
System.out.println(number);
number = number / 2;
System.out.println(number);
number = number % 2;
System.out.println(number);
//복합대입연산자
number += 2;
System.out.println(number);
number -= 3;
System.out.println(number);
number *= 3;
System.out.println(number);
number /= 3;
System.out.println(number);
number %= 5;
System.out.println(number);
number++;
System.out.println(number);
number--;
System.out.println(number);
//++, -- 사용 시 주의할 점
int aa = 10;
int bb = 10;
int val = ++aa + bb--; // 11+9 =20
System.out.println(val); //but 21 cuz 11+10 then bb->9
System.out.println(aa);//11
System.out.println(bb);//9 then bb->9 bb-- <<--
- 연산 형변환 : 자동 형변환-큰쪽으로
- 삼항 연산 : (a > b) ? x : y; 로 true=x나 false=y를 선택 출력
//기타 연산자
//1) 형변환 연산자
int intNumber = 93 + (int) 98.8;
System.out.println(intNumber);
double doubleNumber = (double) 93 + 98.923;
System.out.println(doubleNumber);
//2) 삼항 연산자 ***
//비교 연산자와 항상 함께 쓰인다.
//비교연산자의 결과 : true or false ->이 결과에 따라 결정되는 무언가!
int xx = 1;
int yy = 9;
//xx가 yy랑 다른가? -> 다릅니다. -> false
boolean bbb = (xx == yy) ? true : false;
System.out.println(bbb); //false
//xx가 yy랑 같지 않지? -> 같지 않습니다 -> 정답
String s = (xx != yy) ? "정답" : "오답";
System.out.println(s);//정답
//xx가 yy보다 작니? -> 작습니다 -> xx=값을 출력해
int min = (xx < yy) ? xx : yy;
System.out.println(min);
//3) instance of(3주차 -> 클래스와 객체 배울때 자세히)
//Class, 객체를 배워야 한다.
//피 연산자가 조건에 명시된 클래스의 객체인지 비교하여
//맞으면 -> true
//틀리면 -> false
- 연산자의 우선순위, ( 산 비 논 대 )
//연산자의 우선순위
//연산자의 우선순위 : 산술 > 비교 > 논리 > 대입
//-- 연산자가 열개 함께 있는 연산을 계산 할 때는 우선순위가 있다.
//--위 우선순위에 따라서 최종적인 응답값이 결정
//단, 괄호로 감싸주면 괄호안의 연산이 최우선순위로 계산
int e = 2;
int f = 9;
int g = 10;
boolean result = e < f && f < g;//맞음, 맞음 -->&& true
System.out.println(result);
result = e + 10 < f && f < g;//틀림, 맞음 -->&& false &&는 1개라도 아니면 아님 *생각
System.out.println(result);
result = e + 2 * 3 > g;//*먼저 8 ->아님 false
System.out.println(result);
//연산자의 형변환(자동 - Promotion)
short h = 10;
int i = 20;
int j = h + i; //
long lx = 30L;
long lz = j + lx;
float fh = h;
float fi = i;
float fz = j;
System.out.println(lz);
System.out.println(fh);
System.out.println(fi);
System.out.println(fz);
- 산술 연산 중 비트 연산
//비트연산
// -Byte 를 8등분 한것이 Bit(2진수)
// -bit = 0, 1 둘중의 하나의 값만을 저장하는 컴퓨터가 저장(표현)가능한 가장 작은 단위
//-컴퓨터의 가장 작은 단위인 Bit이기 때문에 연산중에는 Bit연산이 가장 빠름
//-물론 이전에 배운대로 0,1 값으로 산술연산하거나, 비교연산을 할 수 있지만 비트 연산을 통해 자리수를 옮길 수도 있음
//이처럼 Bit의 자리수를 옮기는 것을 비트연산이라고 함
//'<<'(왼쪽으로 자리수 옮기기), '>>'오른쪽으로 자리수 옮기기
//0, 1은 2진수 값이기 때문에,
// -자리수를 왼쪽으로 옮기는 횟수 만큼 2의 배수로 곱셈이 연산 되는 것과 동일 2^2 -> 2^3 된것이니 *2의 배수만큼 곱셈(승이하나올라간다보면됨)
// -자리수를 오른쪽으로 --> 2의 배수로 나눗셈 --> 2^3 -> 2^2 된것이니 /2의 배수만큼 나눗셈
// 1010 -> 0101 이되는것은
// 10 -> 5 라보면됨
System.out.println(3 << 2);
//3= 11, 2만큼 왼쪽으로 옮겨달라
// 11(00), 옮겨져서 빈곳에 00이 생긴다
// 2^3 + 2^2 + 0 + 0 = 8+ 4 + 0 + 0 = 12
System.out.println(3 << 1);
// 11 을 1만큼 왼쪽
// 11(0)
// 2^2+2^1+0 = 4+2+0 = 6
}
}
'Java & Algorithm > Java' 카테고리의 다른 글
[JAVA] 기초문법 - 제어문(Control Flow Statements) - switch문 연습과 if와의 차이 - 13 (0) | 2023.07.26 |
---|---|
[JAVA] 기초문법 - 제어문(Control Flow Statements) - 조건문(If) - 12 (0) | 2023.07.25 |
[JAVA] 기초문법 - 타입 형변환(Type Conversion) - 10 (0) | 2023.07.25 |
[JAVA] 기초문법 - bit, byte, 2진수, 10진수 - 09 (0) | 2023.07.25 |
[JAVA] 기초문법 - char와 string의 차이? - 08 (0) | 2023.07.25 |