JAVA

2. 연산자

웹꽃기사 2021. 3. 26. 09:59

1)산술연산자

부호(+,-), 증감(++,--), +,-,*,/,%

  • 연산식 ** x = y + z;**
    • y와 z를 더한 값을 x에 대입한다는 것을 의미
    • =과 + 는 연산자 ,= 은 대입연산자 이고, + 산술연산자 이다.
    • y와 z 는 피연산자 이다.
    • x = y+ z 는 연산식이다.
  • 부호를 결정하는 부호 연산자
  • 산술 연산을 할 수 있는 산술 연산자
  • 1씩 증가하거나 감소 시키는 증감연산자
  • 피 연산자가 1개인 연산자는 단항 연산자
    • 부호 연산자와, 증감연산자는 단항 연산자 이다.

//부호 연산자 int i1 = -5; int i2 = +i1; int i3 = -i1;

//증감 연산자 int i4 = ++i3; int i5 = i3++; int i6 = --i3; int i7 = i3--;

  • 피연 산자 하나로 연산할 수 없는 연산자 이항 연산자

int i = 5; int j = 2;

  • 2개의 변수 이용한 산술 연산

System.out.println(i + j);

System.out.println(i - j);

System.out.println(i * j);

System.out.println(i / j);

System.out.println(i % j);

 

 

 

2)비교연산자

== , != , < , > , <= , >=

  • 비교 연산자의 결과는 boolean이다.

int i = 10; // = 대입연산자 int j = 10; // i 와 j 가 같은지 비교 하는 비교 연산자

 

System.out.println(i == j )

System.out.println(i == j )

System.out.println(i != j );

System.out.println(i < j);

System.out.println( i <= j);

System.out.println(i > j);

System.out.println(i >= j);

 

  • 단순 대입 연산자
    • i = 10
    • 오른쪽에 있는 피연산자의 값을 왼쪽 피연산자의 변수에 저장
  • 복합 대입 연산자
    • 정해진 연산을 수행한 후에 결과를 대입

i += 10; // i = i + 10; 과 같은 의미

System.out.println(i);

System.out.println(i -=5); S

ystem.out.println(i);

 

 

3)논리 연산자

논리연산자는 논리곱(&&,&) 논리합(||,|), 배타적 논리합 () 논리부정(!) 연산을 수행한다. 논리 연산자의 피연산자는 블린 타입만 사용할 수 있다. 결과는 불린값이다.

boolean b1 = true; boolean b2 = false; boolean b3 = true;

  • 논리곱 (&&, &) - 피연산자가 모두 true일 경우에만 연산 결과가 true 이다.
    • System.out.println(b1 && b2); -> b2가 false 이므로 결과는 false
    • System.out.println(b1 && b3); -> b1과 b2 모두 true 이므로 결과는 true
  • 논리합 (||,|) - 피연산자 중 하나만 true이면 연산 결과는 true 이다.
    • System.out.println(b1 || b2); -> b1 이 true이므로 결과는 true 이다.
  • 배타적 논리합 () -> 피연산자가 서로 다른 값일 경우만 연산 결과가 true 이다.
    • System.out.println(b1 ^ b2); -> b1은 true, b2는 false로 서로 다르므로 결과는 true 이다.
    • System.out.println(b1 ^ b3); -> b1, b3 모두 true로 서로 같다. 결과는false 이다
  • 논리 부정 (!) -> 피연산자의 논리값을 바꾼다. true는 false로 false는 true로 바꾼다.
    • System.out.println(!b1); -> b1 이 true 이므로 결과는 false 이다.
    • System.out.println(!b2); -> b1 이 false 이므로 결과는 true 이다.

 

4)연산자 우선순위

  • 최우선연산자 ( ., [], () )
  • 단항연산자 ( ++,--,!,~,+/-   : 부정, bit변환>부호>증감)
  • 산술연산자 ( *,/,%,+,-,shift) < 시프트연산자 ( >>,<<,>>> ) >
  • 비교연산자 ( >,<,>=,<=,==,!= )
  • 비트연산자 ( &,|,,~ )
  • 논리연산자 (&& , || , !)
  • 삼항연산자 (조건식) ? :
  • 대입연산자 =,*=,/=,%=,+=,-=

int a = 5;

int b = 10;

int c = 5

System.out.println( a - b * c ); //결과는 -45가 나오게 됩니다

 

  • 곱셈이 우선순위가 높기 때문에 b와c를 먼저 곱한다. 그런 다음 a에서 b와 c를 곱한 값을 뺀다.
  • 비교연산자가 논리 연산자 보다 우선순위가 높다.
  • 단 증감 연산자일 경우에 전위 연산자인지 후위 연산자 인지에 따라서 우선 순위가 바뀔 수 있다.

int a = 5; System.out.println(++a - 5); //결과는 1

  • 단항 연산자이면서, 전위 연산자인 ++ 가 먼저 연산된다. a가 6으로 바뀐 후 5 를 빼게 되므로 결과는 1

int a = 5; System.out.println(a++ - 5); //결과는 0 System.out.println(a); //결과는 6

  • 단항 연산자이면서, 후위 연산자인 ++ 가 나중에 연산된다. a가 5인 상태에서 5를 뺀 후에 a++(a=a+1) 이 실행되므로 출력결과는 0

논리연산자 중 and 연산과 or 연산이 나왔을 경우 and 연산이 먼저 수행 됩니다.

'JAVA' 카테고리의 다른 글

6. for each (향상된 for문)  (0) 2021.03.26
5. 배열  (0) 2021.03.26
4.반복문  (0) 2021.03.26
3.제어문  (0) 2021.03.26
1. 변수,상수,타입 정리  (0) 2021.03.26