For Programmer

3. 연산자 본문

Programming language/Java

3. 연산자

유지광이 2021. 8. 11. 00:51
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

 

 

 

 

참조

http://www.devkuma.com/books/pages/11

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