사칙연산
피연산자: 계산할때 계산의 대상이 되는것
ex)연산자로 인해 계산되는 숫자
연산자: 계산의 목적이 되는거
ex)덧셈,뺄셈처럼 계산할 기호
산술 연산자
+,-, *, /, %(나머지),, <<, >>
비교 연산자
>, <,>=, <=,==(좌우가 동일), !=(좌우가 동일하지x)
논리연산자
&&(그리고 조건=비교해서 트루값이 나오는거,주로 if문),||(or 조건,a또는 b가 트루를 만족할때), !(not조건, 논리연산 뒤집는)
&&(AND),||(OR),!(NOT)
-비교 연산의 결과값으로 받을 수 있는 boolean 값을 연결하는 ㅇ녀산자
조건을 연결하였을 때 boolean 값들을 조합하여 참(true) 또는 거짓(false) 값인 boolean 값을 출력
대입연산자
=,++, --
변수를 바로 연산해서 그 자리에서 저장하는(대입하는) 연산자
-기본연산자: =
-복합대입연산자: +=, -=, *= 등등
++: += 1
--: -= 1
기타연산자
(type)형변환연산자, ?:, instance of
-형변환 연산자
int intNumber = 93 + (int)98.8;
System.out.println(intNumber); // 93 + 93 =191
double doubleNumber = (double)93 +98.8;
System.out.println(doubleNumber); //93.0+98.8 =191.8
-삼항 연산자
비교연산자와 항상 함께 쓰인다
비교연산자의 경과: true or false -> 이 결과의 값에 따라 결정되는 무언가
조건 ? 참 : 거짓
int x = 1;
int y = 9;
boolean b =(x==y) ? true :false;
System.out.println(b); //false
String s = (x !=y ) ? "정답" : "오답"; //x가 y랑 다르니? 응!!
System.out.println(s); //정담
int max = (x > y) ? x : y;
System.out.println(max); //9
int min =(x < y) ? x : y; //x가 y 보다 작니? 맞으면 x, 틀리면 y
System.out.println(min); //1
-instance of(3주차에서 자세히!->클래스, 객체)
피 연산자가 조건에 명시된 클래스의 객체인지 비교하여
맞으면->true
틀리면->false
[연산자 우선순위 : 산술 >비교 >논리 >대입]
우선순위에 따라 최종적인 응답값이 결정된다
단, 괄호로 감싸주면 괄호안의 연산이 최우선순위로 계산된다
public class W08 {
public static void main(String[] args) {
int x = 2;
int y = 9;
int z = 10;
//비교 논리 비교
boolean result = x < y && y< z;
System.out.println(result); //true
result = x + 10 < y && y < z;
System.out.println(result); //false && true ->false
result = x + 2 * 3 > y;
System.out.println(result); //false
result = (x + 2) * 3 > y;
System.out.println(result); //true
}
}
산술변환
타입이 다르면, 두 피연산자의 타입을 같게 일치 (둘중에 저장공간 크기가 더 큰 타입으로 일치)
-피연산자의 타입이 int 보다 작은 short 타입이면 int로 변환
-피연산자의 타입이 long 보다 작은 int, short 타입이면 Long으로 변환
-피연산자의 타입이 float보다 작은 long, int, short 타입이면 float으로 변환
-피연산자의 타입이 double 보다 작은 float, long, int, short 타입이면 double으로 변환
-이처럼, 변수 여러 개를 연산했을 때 결괏값은 피-연산자 중 표현 범위가 가장 큰 변수 타입을 가지게 됩니다.
public class W09 {
public static void main(String[] args) {
short x =10;
int y = 20;
int z = x+y;
long lx = 30L;
long lz = z + lx; //long타입으로
float fx = x;
float fy = y;
float fz = z;
System.out.println(lz); //60
System.out.println(fx); //10.0
System.out.println(fy); //20.0
System.out.println(fz); //30.0
}
}
비트연산
Byte를 8등분 한 게 Bit
-Bit는 0,1 둘 중의 하나의 값만을 저장하는 컴퓨터가 저장(표현) 가능한 가장 작은 단위
-컴퓨터의 가장 작은 단위인 Bit이기 때문에 연산중에서 Bit 연산이 제일 빠름
-물론 이전에 배운 대로 0,1 값으로 산술연산을 하거나, 비교 연산을 할 수 있지만 비트 연산을 통해 자릿수를 옮길 수도 있음
-이처럼 Bit의 자릿수를 옮기는 것을 비트 연산
-'<<'(왼쪽으로 자릿수옮기기), '>>'(오른쪽으로 자릿수옮기기)
-0,1 은 2진수 값이기 때문에,
자릿수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는 것과 동일
ex)0101->1010 (5->10)
자릿수를 오른쪽으로 옮기는 횟수만큼 2의 배수로 나눗셈이 연산되는 것과 동일
public class W10 {
public static void main(String[] args) {
System.out.println(3 << 2); //12 11(2)->1100(2)
System.out.println(3 << 1); //6 11(2)->110(2)
}
}
'내일배움캠프 7기' 카테고리의 다른 글
Spring 7기 9일(자바 클래스,메서드) (1) | 2024.10.11 |
---|---|
Spring 7기 8일차(자바) (0) | 2024.10.10 |
Spring7기 6일차(자바 강의1주차) (17) | 2024.10.08 |
Spring7기 5일차(숙제 마무리,자바의 정석,웹기초특강) (0) | 2024.10.07 |
Spring 7기 4일차(배포,배운것들 복습인 숙제) (2) | 2024.10.04 |