자바의 연산자
p165 참조
1. 사칙연산자 (+ - * / %)
나머지(%)의 활용
10%2 = 0; // 10을 2로 나눴을 때 나머지가 0 (짝수)
10%2 = 1; // 10을 2로 나눴을 때 나머지가 1 (홀수)
2. 부호연산자 + -
양수와 음수의 부호
3. 문자열 연결 연산자 +
문자와 문자를 연결 "Hello" + "Java"의 결과값은 HelloJava
4. 단순대입 연산자 =
변수 = 식 (오른쪽 식의 결과를 변수에 대입한다)
int a = 2 + 1;
※좌우가 같다(==)와 구분할 것!!
5. 증가/감소 연산자 ++/--
변수값을 1만큼 증가/감소. 연산자를 변수의 어느쪽에 쓰느냐에 따라 결과값이 달라진다.
변수++ 변수를 1씩 증가시킨다. 초기값은 최초값
++변수 변수를 1부터 증가시킨다. 초기값은 1 증가시킨 직후의 값
변수-- 변수를 1씩 감소시킨다. 초기값은 최초값
--변수 변수를 1부터 감소시킨다. 초기값은 1 감소시킨 직후의 값
6. 수치비교 연산자 <> <= >=
두 수의 크기를 비교하는 수치비교 연산자
a < b // a가 b보다 작으면 true, 아니면 false
a > b // a가 b보다 크면 true, 아니면 false
a <= b // a가 b보다 작거나 같으면 true, 아니면 false
a >= b // a가 b보다 크거나 같으면 true, 아니면 false
7. 동등 연산자 == !=
두 데이터의 값이 같은지 다른지를 판단
a == b // a와 b가 같으면 true, 다르면 false
a != b // a와 b가 다르면 true, 같으면 false
※ 부동소수점수를 동등 연산자로 비교할 때에는 오차가 발생하므로 주의.
수치비교 연산자로 대신할 것. (p180 참조)
7. 논리연산자 & | ^ !
논리적 AND OR XOR NOT 연산. 자세한 것은 생략
8. 조건 AND/OR 연산자 && ||
최적화된 논리적 AND, OR 연산
a && b // a와 b가 둘 다 true면 true, 아니면 false. 둘 다 true래야만 true가 된다.
a || b // a와 b가 둘 다 false면 false, 아니면 true. 둘 중 하나만 true라도 true가 된다.
※ &&와 ||는 어느 한쪽을 왼쪽을 먼저 계산 후 답이 나오면 나머지는 풀지 않고 결과가 나오므로 &와 | 보다 효율이 좋지만 결과값이 달라질 수 있으므로 주의. (p184 참조)
9. 조건 연산자 ? :
조건에 따라 두 값 중 한 값을 택일
조건식 ? 식1 : 식2 (조건식이 true면 식1을 계산하고, 아니면 식2를 계산한다.)
max = a < b ? a : b; (a<b이면 a값을 MAX에 넣고, 그렇지 않으면 b값을 MAX에 넣는다.)
10. 비트 연산자 & |^ ~
비트 단위의 AND, OR, XOR, NOT 연산 (p187 참조)
& AND : 둘 다 1일 때에만 1, 나머지는 모두 0
| OR : 둘 중 하나만 1이라도 1, 둘 다 0인 경우만 0이 됨.
^ XOR : 둘 중 하나만 1일 때에만 1, 둘 다 1이거나 둘 다 0이면 0
~ NOT : 1이면 0, 0이면 1
11. 쉬프트 연산자 << >> >>>
비트를 좌측/우측으로 밀어서 이동. 자세한 것은 생략
12. 복합 대입 연산자 += -= *= /= %= &= |= ^= <<\ >>\ >>>=
+ - * / % & | ^ << >> >>> 연산자와 = 연산자의 기능을 함께 수행. 줄여 표현할 때 편리.
num += 1; // num = num + 1;을 복합연산자로 표현
num -= 1; // num = num - 1;을 복합연산자로 표현
13. 캐스트 연산자
타입의 강제 변환.
(타입) 피연산자
피연산자 자체의 타입을 바꾸는 것이 아니라 피연산자와 같은 값을 갖는 새로운 타입의 값을 만들어냄.
int a = (int) 12.9; // double 타입인 12.9를 int 타입으로 변환. 소수점이 손상되어 12가 됨.
int num1 = 3;
double num2 = (double) num1; // double 타입의 num2에 3을 대입하여 3.0이 됨.
'자바의 기초문법' 카테고리의 다른 글
반복문 for (0) | 2015.12.11 |
---|---|
조건문 switch (0) | 2015.12.11 |
조건문 if, 점수 범위에 따라 학점을 출력하는 문제 (0) | 2015.12.11 |
프리미티브 타입 (2) | 2015.12.10 |
자바 시작하기 (0) | 2015.12.09 |