학습 내용
형변환
형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는 것이다.
자동(묵시적) 형변환(Conversion)
- 바이트 크기가 작은 자료형을 큰 자료형으로 대입하는 경우
- 덜 정밀한 자료형에서 더 정밀한 자료형으로 대입하는 경우
- 자동 형 변환은 컴파일러나 인터프리터에 의해 기존의 값을 최대한 보존할 수 있는 타입으로 데이터 타입이 변환된다.
강제적(명시적) 형변환(Casting)
- 바이트 크기가 큰 자료형을 작은 자료형으로 대입하는 경우이다.
- 프로그래머가 직접 캐스팅 연산자 등을 이용하여 의도적으로 데이터 타입을 바꾸는 것이다.
- 강제적 형 변환 시 데이터 손실 발생 가능성이 있다. 큰 그릇을 쪼개어 작은 그릇에 담는 것과 같다.
- 실수 자료형에서 정수 자료형으로 값이 대입되는 경우 형 변환을 명시적으로 해주어야 한다. 이 경우 실수의 소수점 이하 부분이 생략되고 정수 부분만 출력된다.
- 자료형간 연산 중 형변환이 일어나는 경우 형 변환이 언제 이루어졌는가에 따라 그 결과 값이 다르다.
- 강제적 형 변환의 목적은 메모리 효율성을 위해 원래 값이 유지되면서 타입만 바꾸는 것이다. 그렇기 때문에 작은 허용 범위 타입에 저장될 수 있는 값을 가지고 강제적 형 변환을 해주어야 한다.
연산시 형변환
- 정수 타입변수가 산술 연산식으로 피연산자로 사용되면 int타입보다 작은 byte,short 타입의 변수는 int 타입으로 자동 타입 변환되어 연산을 수행한다. 특별한 이유가 없다면 정수 연산에서 변수가 사용될 경우 int 타입으로 변수를 선언하는 것이 타입 변환이 발생하지 않기 때문에 실행 성능에 좋다.(정수 변수 연산할거면 byte, short 쓰지 말자..)
연산자(Operator)
산술연산자
- 사칙연산에서 사용하는 연산자
- 산술연산자의 종류 : 곱셈(*), 나머지(%), 나누기(/), 더하기( +), 빼기( -)
- 산술연산자의 우선순위 : (*,%,/) > (+,-)
- 단항연산자, 이항연산자, 삼항연산자
비교연산자
- 비교연산자의 종류 : >, >= , <=, !=, ==,
- 비교연산자의 결과 값은 참(true) 또는 거짓(false)으로 반환
논리연산자
- &&(AND) : 논리곱. 두 항이 모두 참인 경우에만 결과 값이 참. 그렇지 않을 경우 거짓이다.
- || (OR) : 논리합. 두 항 중 하나의 항만 참이면 결과 값은 참. 두 항이 모두 거짓이면 결과 값은 거짓이다.
- !(NOT) : 부정. 단항 연산자이다. 참인 경우는 거짓으로 바꾸고, 거짓인 겨우는 참으로 바꾼다.
- ^(XOR) : 배타. 두 항이 서로 바타적일때 참. 두 항이 같으면 거짓이다.
- 단락 회로 평가(Short Circuit Evaluation) : 논리 곱 연산과 논리합 연산을 할 때 두 항을 모두 실행하지 않더라도 결과 값을 알 수 있는 경우 나머지 항은 실행되지 않는다.
비트연산자
- 비트 단위로 연산이 이루어지는 연산자.
- 자바에서 비트 연산자는 메모리와 속도 최적화, 플래그 처리, 데이터 보안 및 논리 연산 등에 사용된다.
- 비트 논리 연산자 : 비트 단위로 &, |, ^, ~ 연산이 이루어진다.
- &(AND)연산자 : 두 비트 값이 모두 1인 경우에만 연산 결과 값이 1이 된다.
- |(OR) 연산자 : 두 비트 값 중 하나라도 1이면 연산 결과 값이 1이 된다.
- ^(XOR) 연산자: 두 비트 값이 같은 값이면 0, 다른 값이면 1의 결과 값을 갖는다.
- ~ (반전) 연산자: 비트 값은 0은 1로, 1은 0으로 바꾸는 연산자이다.
- 쉬프트(Shift) 연산자 : 비트를 이동시켜 값을 변화시키는 연산자. <<,>>,>>> 이렇게 세가지 종류가 있다.
할당(대입) 연산자(assignment operator)
- 할당(대입) 연산자 : 대입 연산자의 오른쪽 식이 항상 먼저 실행 된 후 그 결과값을 왼쪽의 변수에 대입. 모든 연산을 끝낸 후 마지막에 연산 결과를 변수에 대입함
= : 변수 = 값(변수)
//왼쪽 변수 = 오른쪽 변수(또는 식)
int age = 28;
- 대입 연산자는 이항 연산자 중 우선순위가 가장 낮다
- 복합 대입 연산자 : 대입 연산자와 다른 연산자를 조합해 하나의 연산자처럼 사용하는 연산자. 산술 연산자와 비트연산자와 함께 사용하여 코드를 간결하게 표현할 수 있다.
- +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, |=, ^=
- 복합 대입 연산자를 사용하면 변수를 반복적으로 사용하지 않아도 되는 장점이 있다.
- 할당연산자 사용 규칙
-
증감(관계)연산자
++(증가 연산자),--(감소연산자), ++는 변수의 값을 1 증가시키거나 1 감소 시키는 연산자이다.
단독으로 쓰일때는 항이 증감연산자 앞에 붙거나 뒤에 붙거나 결과는 같다. 하지만 다른 연산자와 결합할때는 다르다.
++(--)변수:먼저 자신을 증감 시키는데 이를 전위 연산이라고 한다.
변수++(--):다른 연산을 수행한후 자신을 증감시킨다. 이를 후위 연산이라고 한다.
조건연산자
- 연산에 필요한 항의 개숭가 세 개인 연산자.
조건식 ? 값1 : 값2;
int num = (4 < 3) ? 5 : 6
// 위 조건식은 거짓이므로 num값은 6이 된다.
// 조건식이 참이면 값1을 반환하고 거짓이면 값2를 반환한다.
연산자 우선순위
- 단항 연산자가 가장 높고 이항,삼항 연산자 순서이다.
- 대입 연산자의 우선순위가 가장 낮다.
- 산술, 관계, 논리,대입 연산자 순서로 우선순위를 가지며 ()의 우선순위가 가장 높다.
조건문
- 분기문
- if문
- 조건식(비교식,논리식),실행문,
- 주의 사항
- if문과 논리,비교 연산자를 활용한 입력값 판별 문제1,2
※각 개념에 대한 자세한 내용은 따로 포스팅 예정
'TIL' 카테고리의 다른 글
[23.03.17.] 국비지원 풀스택 개발자 과정 - Day 8 (0) | 2023.03.18 |
---|---|
[23.03.14.] 국비지원 풀스택 개발자 과정 - Day 5 (0) | 2023.03.15 |
[23.03.13.] 국비지원 풀스택 개발자 과정 - Day 4 (0) | 2023.03.15 |
[23.03.09.] 국비지원 풀스택 개발자 과정 - Day 2 (2) | 2023.03.15 |
[23.03.08] 국비지원 풀스택 개발자 과정 - Day 1 (1) | 2023.03.14 |
댓글