일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- HTML
- 비전공자개발자이야기
- 인천맛집
- TypeORM
- K 디지털 크레딧
- 무궁화분식
- 유연성
- 부평파스타맛집
- 걷기
- 시맨틱태그
- 바이러스
- 마라탕맛집
- 근지구력
- 아이들이 좋아하는
- 서구맛집
- 심박수
- 청라맛집
- 다이어트
- 코로나19
- 근력
- 막창맛집
- SementicTags
- 탄수화물
- 칼국수맛집
- 송도커낼워크
- 심폐지구력
- SementicWeb
- 달리기
- 조깅
- 에너지원
- Today
- Total
Feel It First
[Do it! 자바 프로그래밍 입문] 03 자바의 여러 가지 연산자 본문
자바의 여러 가지 연산자
자바의 여러 가지 연산자
항과 연산자
항(operand)
연산의 사용되는 값
연산자(operator)
항을 이용하여 연산하는 기호
항의 개수에 따른 연산자 구분
++num // 항이 한 개인 단항 연산자
num1 + num2; // 항이 두 개인 이항 연산자
(5 > 3) ? 1 : 0; // 항이 세 개인 삼항 연산자
대입 연산자
변수에 값을 대입하는 연산자
연산의 결과를 변수에 대입
우선순위가 가장 낮은 연산자
왼쪽 변수(lvalue)에 오른쪽 값(rvalue) 대입
int age = 24; // 나이를 의미하는 age 변수에 24 값을 대입
totalscore = mathScore + engScore;
// mathScore, engScore 두 개의 변수를 더한 값을 totalScore에 대입
산술 연산자
사칙 연산에 사용되는 연산자
5 + 3 // 두 더항을 더합니다.
5 - 3 // 앞에 있는 항에서 뒤에 있는 항을 뺍니다.
5 * 3 // 두 항을 곱합니다.
5 / 3 // 앞에 있는 항에서 뒤에 있는 항을 나눕니다.
5 % 3 // 앞에 있는 항에서 뒤에 있는 항을 나누어 그 나머지 값을 구합니다.
증가 감소 연산자
단항 연산자
1만큼 더하거나 1만큼 빼는 연산자
항의 앞/뒤의 위치에 따라 연산의 결과가 달라짐에 유의해야 함.
val = ++num; // 먼저 num 값이 1 증가한 후 val 변수에 대입
val = num++; // val 변수에 기존 num 값을 먼저 대입한 후 num 값 1 증가
val = --num; // 먼저 num 값이 1 감소한 후 val 변수에 대입
val = num--; // val 변수에 기존 num 값을 먼저 대입한 후 num 값 1 감소
관계 연산자
이항 연산자
연산의 결과가 true(참), false(거짓)으로 반환됨
num > 3; // 왼쪽 항이 크면 true, 아니면 false 반환
num < 3; // 왼쪽 항이 작으면 true, 아니면 false 반환
num >= 3; // 왼쪽 항이 오른쪽 항보다 크거나 같으면 true, 아니면 false 반환
num <= 3; // 왼쪽 항이 오른쪽 항보다 작거나 같으면 true, 아니면 false 반환
num == 3; // 두 개의 항의 값이 같으면 true, 아니면 false 반환
num != 3; // 두 개의 항의 값이 다르면 true, 아니면 false 반환
논리 연산자
관계 연산자와 혼합하여 많이 사용됨
연산의 결과가 true(참), false(거짓)으로 반환됨
boolean val = (5 > 3) && (5 > 2); // 두 항이 모두 true인 경우에만 결과 값이 true, 그렇지 않은 경우 false
boolean val = (5 > 3) || (5 < 2); // 두 항 중 하나의 항만 참이면 결과 값은 true, 두 항이 모두 거짓이면 false
boolean val = !(5 > 3); // 단항 연산자로 결과 값이 true인 경우 false로 false인 경우 true로 결과 값을 바꿉니다.
복합 대입 연산자
대입 연산자와 다른 연산자를 함께 사용함
프로그램에서 자주 사용하는 연산자
num1 += 2; // 두 항의 값을 더해서 왼쪽 항에 대입합니다.
num1 = num1 + 2; // 위의 복합 대입 연산자와 결과 값이 같음.
num1 -= 2; // 왼쪽 항에서 오른쪽 항의 값을 빼서 왼쪽 항에 대입합니다.
num1 = num1 - 2; // 위의 복합 대입 연산자와 결과 값이 같음.
num1 *= 2; // 두 항의 값을 곱해서 왼쪽 항에 대입합니다.
num1 = num1 * 2; // 위의 복합 대입 연산자와 결과 값이 같음.
num1 /= 2; // 왼쪽 항을 오른쪽 항으로 나누어 그 값을 왼쪽 항에 대입합니다.
num1 = num1 / 2; // 위의 복합 대입 연산자와 결과 값이 같음.
num1 %= 2; // 왼쪽 항을 오른쪽 항으로 나누어 그 나머지 값을 왼쪽 항에 대입합니다.
num1 = num1 % 2; // 위의 복합 대입 연산자와 결과 값이 같음.
조건 연산자
삼항 연산자
조건 식의 결과가 true인 경우와 false인 경우에 따라 다른 식이나 결과가 수행됨.
제어문 중 조건문을 간단히 표현할 때 사용할 수 있음.
int num = (5 > 3) ? 10 : 20; // 조건식이 참이면 10을 거짓이면 20을 반환
단락 회로 평가
논리 곱(&&)은 앞의 항이 false이면 뒤에 항의 결과를 평가하지 않아도 false임
논리 합(||)은 앞의 항이 true이면 뒤에 항의 결과를 평가하지 않아도 true임
int num 10;
int i = 2;
boolean val = ((num1 += 10) < 10) && ((i += 2) < 10); // 논리 곱에서 앞 항의 결과 값이 false이므로 뒤에 문장은 실행되지 않음
System.out.println(val) // false
System.out.println(num1) // 20
System.out.println(i) // 2
val = ((num1 += 10) > 10) || ((i += 2) < 10); // 논리 합에서 앞 항의 결과 값이 true이므로 뒤에 문장은 실행되지 않음
System.out.println(val) // true
System.out.println(num1) // 30
System.out.println(i) // 2
비트 연산자
&(AND)연산자
두 비트가 모두 1인 경우만 1 아니면 0
int num1 = 5; // 00000101
imt num2 = 10; // 00001010
int result = num1 & num2; // 00000000
System.out.println(result); // 0
|(OR) 연산자
두 비트가 모두 0인 경우만 0 아니면 1
int num1 = 5; // 00000101
imt num2 = 10; // 00001010
int result = num1 | num2; // 00001111
System.out.println(result); // 15
^(XOR) 연산자
두 비트가 다른 값이면 1, 같은 값이면 0
int num1 = 5; // 00000101
imt num2 = 10; // 00001010
int result = num1 ^ num2; // 00001111
~(반전) 연산자
비트 값을 0은 1로 1은 0으로 바꾸는 연산자
int num = 10; // 00001010
int result = ~num; // 11110101
<<(왼쪽 shift)
비트를 오른쪽에서 왼쪽으로 이동시키는 연산자
>>(오른쪽 shift)
비트를 왼쪽에서 오른쪽으로 이동시키는 연산자
<<<,>>>
비트 이동은 동일한데, 남은 공간을 무조건 부호비트가 아닌 0으로 채움
'IT' 카테고리의 다른 글
[Java 개발자가 되기 위한 첫걸음 1] 01 자바 프로그래밍의 시작 (0) | 2022.05.24 |
---|---|
[Do it! 자바 프로그래밍 입문] 04 제어 흐름 이해하기 (0) | 2022.05.22 |
[Do it! 자바 프로그래밍 입문] 02 변수와 자료형 (0) | 2022.05.21 |
[Do it! 자바 프로그래밍 입문] 01 자바 프로그래밍 시작하기 (0) | 2022.05.20 |
[Computer Science] 초기컴퓨팅 #1 (0) | 2022.03.09 |