For Programmer
3. 연산자 본문
728x90
1.산술 연산자
연산자기능사용법사용 설명
+ | 덧셈 | op1 + op2 | op1과 op2를 더한다. |
- | 뺄셈 (또는 단항 마이너스) | op1 - op2 | op1과 op2를 뺀다. |
* | 곱셈 | op1 * op2 | op1과 op2를 곱한다 |
/ | 나눗셈 | op1 / op2 | op1을 op2로 나눈다. |
% | 나머지 | op1 % op2 | op1을 op2로 나눈 나머지를 구한다. |
int a = 1 + 9;
int b = a - 3;
int c = b * 5;
int d = c / 2;
int e = d % 4;
System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println("c=" + c);
System.out.println("d=" + d);
System.out.println("e=" + e);
a=10
b=7
c=35
d=17
e=1
2. 복합연산자
int a =0;
a += 4; // a = a + 4
System.out.println("a += :"+a);
a -= 3; // a = a - 4
System.out.println("a -= :"+a);
a *= 3; // a = a * 4
System.out.println("a *= :"+a);
a /= 3; // a = a / 4
System.out.println("a /= :"+a);
a %= 3; // a = a % 4
System.out.println("a %= :"+a);
a += :4
a -= :1
a *= :3
a /= :1
a %= :1
3. 관계 연산자
관계 연산자는 이항 연산자로서 한 연산항이 다른 연산항에 대해 가지는 관계를 결정한다.
이 연산들의 결과 값은 항상 논리값(true 또는 false)의 형태이기 때문에 if문과 같은 제어문이나 for문 같은 반복문장에 자주 사용된다.
4.증감연사자
int a = 10;
int b = 20;
System.out.println(a++); // 선출력 후증가
System.out.println(++a); // 선증가 후출력
System.out.println(a--); // 선출력 후감소
System.out.println(--a); // 선감소 후출력
System.out.println(a++ + b); //1.덧셈,2.출력,3.a증가
System.out.println(a); // a는 증가된상태
5.논리 연산자
연산자기능사용법사용 설명
& | 논리적 AND | op1 & op2 | op1과 op2가 모두 true인 경우 true, op1과 op2를 모두 평가한다. |
I | 논리적 OR | op1 I op2 | op1과 op2중 둘 중 하나 이상이 true인 경우 true, op1과 op2를 모두 평가한다. |
^ | 논리적 XOR(배타적 OR) | op1 ^ op2 | op1과 op2중 둘 중 하나 이상이 true인 경우 false, op1과 op2를 모두 평가한다. |
&& | 짧은 순환 AND | op1 && op2 | op1과 op2가 모두 true인 경우 true, op1가 false이면 op2를 평가하지 않는다. |
II | 짧은 순환 OR | op1 II op2 | op1과 op2중 둘 중 하나 이상이 true인 경우 true, op1가 true이면 op2를 평가하지 않는다. |
! | 논리적 단항 NOT | !op | op가 true이면 false, false이면 true |
boolean a = true;
boolean b = false;
boolean c = true;
boolean d = a & b;
boolean e = a | b;
boolean f = a ^ b;
boolean g = a && b;
boolean h = a && c;
boolean i = a || b;
boolean j = a || c;
boolean k = !a;
System.out.println("d=" + d);
System.out.println("e=" + e);
System.out.println("f=" + f);
System.out.println("g=" + g);
System.out.println("h=" + h);
System.out.println("i=" + i);
System.out.println("j=" + j);
System.out.println("k=" + k);
d=false
e=true
f=true
g=false
h=true
i=true
j=true
k=false
6. 비트 연산자
연산자기능사용법사용 설명
& | AND | op1 & op2 | 비트 단위의 논리곱 |
I | OR | op1 I op2 | 비트 단위의 논리합 |
^ | XOR | op1 ^ op2 | 비트 단위의 배타적 논리합 |
~ | NOT | op1 & op2 | 비트 단위의 부정 |
int a = 3;
int b = 6;
int c = a & b;
int d = a | b;
int e = a ^ b;
int f = (~a & b) | (a & ~b);
System.out.println("c=" + c);
System.out.println("d=" + d);
System.out.println("e=" + e);
System.out.println("f=" + f);
c=2
d=7
e=5
f=5
7. 비트 연산자
연산자기능사용법사용 설명
>> | NOT | op1 >> op2 | op1을 op2만큼 오른쪽으로 쉬프트 |
<< | NOT | op1 >> op2 | op1을 op2만큼 왼쪽으로 쉬프트 |
>>> | NOT | op1 >>> op2 | op1을 op2만큼 오른쪽으로 쉬프트하면서 왼쪽에는 항상 부호에 무관하게 0이 채워짐 |
// 1000(8)를 2만큼 오른쪽으로 비트를 옮기면 100000(32)가 된다.
byte a = 8 << 2;
// 1000(8)를 2만큼 왼쪽으로 비트를 옮기면 10(2)가 된다.
byte b = 8 >> 2;
// -1를 32bit로 표현하면 11111111111111111111111111111111이 되고,
// 이를 2만큼 오른쪽으로 쉬프트하면서 왼쪽에는 항상 부호에 무관하게 0이 채워짐
// 그래서 값은 01111111111111111111111111111111(2147483647)이 된다.
int c = -1 >>> 1;
System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println("c=" + c);
a=32
b=2
c=2147483647
8. 삼항 연산자
3개의 피연산자를 가진 3항 연산자 ":?"는 선택문의 if-when-else 문을 축약해서 사용할 수 있다.
- 조건 ? 수식1(조건이 true인 경우) : 수식2 (조건이 false인 경우)
int a = 5; int b = 8; int max = (a > b) ? a : b; System.out.println("max=" + max);
max=8
참조
728x90
'Programming language > Java' 카테고리의 다른 글
6. 클래스 (0) | 2021.08.13 |
---|---|
5. 제어문(가정문,반복문) (0) | 2021.08.12 |
4. 배열 (0) | 2021.08.11 |
2. 출력 함수(printf,println) (0) | 2021.08.10 |
1. 자료형 (0) | 2021.08.10 |
Comments