컴퓨터프로그래밍/JAVA

JAVA연산자

zelkova 2013. 10. 5. 20:11


<목차로 돌아가기>


자바에서 사용할 수 있는 연산자에는 산술, 대입, 관계, 조건, 논리 연산자가 있으며 데이터형을 비교하기 위한 instanceof 연산자가 있다.


  연산자의 종류


연산자의 종류

 산술(Arithmetic)

 +, -, *, /, %, ++, -- 

 대입(Assignment)

 =, op=

 관계(relational) 

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

 조건(Conditional) 

 ? : 

 논리(Logical) 

 !, &, |, &&, || 

 타입비교(instanceof)

 instanceof 




산술연산자(Arithmetic) 연산자

1. 피연산자에 double 형이 있으면 double형으로 연산을 수행

2. 피연산자에 float형이 잇으면 float형으로 연산을 수행

3. 피연산자에 long형이 있으면 long형으로 연산을 수행

4. 그 외에는 int형으로 연산을 수행


연산자 

사용법 

설명 

 + 

 a+b 

 a와 b가 숫자라면 합을계산 

 - 

 a-b 

 a와 b가 숫자라면 차를계산  

 *

 a*b 

 a와 b가 숫자라면 곱을계산  

 / 

 a/b 

 a와 b가 숫자라면 나눗셈을계산  

 %

 a%b 

 a와 b가 숫자라면 나눈후 나머지를 계산

 + 

 +a 

 a의 부호를 유지한다. 

 - 

 -a 

 a의 부호를 바꾼다. 

 ++ 

 ++a, a++ 

 a의 값을 1증가 

 -- 

 --a, a--

 a의 값을 1감소 



대입 연산자

1. 변수에 값을 대입하기 위해 사용하는 연산자.

2. 대입 연산자의 종류 =, op=

3. 대입 연산자에는 a = a+b와 같이 사용하거나 이를 줄여 a+=b와 같이 사용가능



연산자 

사용예 

설명 

+= 

a+=b 

a = a + b 

-= 

a-=b 

a = a - b 

 *=

a*=b 

a = a * b 

 /= 

a /= b 

 a = a / b 

%= 

a %= b 

 a = a % b 

&= 

a &= b 

 a = a & b 

^= 

a ^= b 

 a = a ^ b 

|= 

a |= b 

 a = a | b 




관계연산자

1. 두 피연산자의 관계를 비교하기 위해 사용하는 연산자.

2. 관계 연산자의 종류 <, >, <=, >=, ==, !=

3. 연산자의 결과는 boolean형으로 표현되는 true, false


 연산자 

 사용예 

 설명 

 a < b 

 a가 b보다 작다면 true를 반환 

a > b 

 a가 b보다 크면 true를 반환 

<= 

 a <= b 

 a가 b보다 작거나 같으면 true를 반환 

>=  

 a >= b 

a가 b보다 크거나 같으면 true를 반환 

 == 

 a == b  

a가 b와 같으면 true를 반환 

 != 

 a != b 

a가 b와 다르면 true를 반환 


조건연산자

표현식이 true면 첫 번째 문장을 실행하고 문장을 달리하는 연산자이다. 

1. 표현식이 true면 첫 번째 문장을 실행하고 그렇지 않으면 두 번째 문장을 실행

2. if else 문과 같은 기능을 하는 연산자

3. 3항 연산자라 부르기도 함


사용법)

(표현식)? 문장1 : 문장2


예제)

a=2

(a<2)?  system.out.println("헉!") : system.out.println("똷")

a가 2보다 작다면 -->  system.out.println("헉!")을 실행 

a가 2보다 크다면 --> system.out.println("똷") 을 실행


논리연산자

논리 연산자는 true나 false와 같은 논리값을 비교하여 그 결과를 나타내는 연산자이다. 이에 대해 정리하면 다음과 같다.

1.true나 false와 같은 논리값을 연산하기 위한 연산자.

2. 피연산자에는 항상 논리값이 와야 하며 결과 값 또는 논리값이 됨

3. 논리 연산자의 종류 !, &, |, &&, ||


!연산자

a가 참이면 거짓

a가 거짓이면 참

 변수 

 조건비교

 결과 

 a = true

 b = !a

 FALSE 

 a = false

 b = !a 

 TRUE 


&연산자

피연산자가논리값을 비교하기 위한 AND 연산자로서 피연산자가 모두 TRUE이면 결과값은 TRUE가 되고 그렇지 않으면 결과값은 FALSE가 된다.

다음의 예제를 통해서 이해해보자


boolean a = true

boolean b = true

boolean c

c = a & b 

결과) 참


boolean a = true

boolean b = false

boolean c
c = a & b 
결과) 거짓

boolean a = false

boolean b = true

boolean c

c = a & b 

결과) 거짓


boolean a = false

boolean b = false

boolean c
c = a & b 
결과) 거짓

|연산자
피연산자의 논리값을 비교하기 위한 OR연산자로 피연사 모드 false이면 결과값은 false가 되고 그렇지않으면 true가 된다.

boolean a = true

boolean b = true

boolean c

c = a & b 

결과) 참


boolean a = true

boolean b = false

boolean c
c = a & b 
결과) 참

boolean a = false

boolean b = true

boolean c

c = a & b 

결과) 참


boolean a = false

boolean b = false

boolean c
c = a & b 
결과) 거짓

&&연산자

피연산자가논리값을 비교하기 위한 AND 연산자로서 피연산자가 모두 TRUE이면 결과값은 TRUE가 되고 그렇지 않으면 결과값은 FALSE가 된다.

다음의 예제를 통해서 이해해보자


boolean a = true

boolean b = true

boolean c

c = a & b 

결과) 참


boolean a = true

boolean b = false

boolean c
c = a & b 
결과) 거짓

boolean a = false

boolean b = true

boolean c

c = a & b 

결과) 거짓


boolean a = false

boolean b = false

boolean c
c = a & b 
결과) 거짓


||연산자

피연산자의 논리값을 비교하기 위한 OR연산자로 피연사 모드 false이면 결과값은 false가 되고 그렇지않으면 true가 된다.

boolean a = true

boolean b = true

boolean c

c = a & b 

결과) 참


boolean a = true

boolean b = false

boolean c
c = a & b 
결과) 참

boolean a = false

boolean b = true

boolean c

c = a & b 

결과) 참


boolean a = false

boolean b = false

boolean c
c = a & b 
결과) 거짓


short Circuit기능

Short Circuit기능은 전체 식을 평가하지 않고 부분만 평가하고서도 그 식의 결과를 알 수 있을 때 나머지 식을 평가하지 않는 것을 말한다. 이 기능은 &&과 ||연산자에만 적용된다.

그래서 아래 코드 에서 오른쪽의 & 연산자 코드는 s가 null이기 때문에 NullPointException가 발생한다.


&& 연산자 사용시

String a = null;

if (a != null && a.length() < 7) {

System.out.println("ok");

}

& 연산자 사용시

String a = null;

if (a != null && a.length() < 7) {

System.out.println("ok");

}


타입비교(instanceof)연산자

 타입 비교 연산자인 instanceof는 프로그램 실행 중에 지정된 객체가 특정 클래스의 인스턴스인지 또는 특정 인터페이스를 구현하는지를 판단하기 위한 연산자이다.


사용방법

참조변수 instanceof <클래스명, 인터페이스명>


instanceof 연산자 예제

사용예제 

결과 

성명 

"test" instanceof String 

true 

String 객체 "test는 String 클래스의 인스턴스이기 때문에 true를 반환함 

 "test" instanceof object

true 

 Object 클래스는 자바의 최상위 클래스이기 때문에 이 예제의 결과는 true 

 null instanceof String

false 

 참조변수의 디폴트 값은 null이지만 String 객체의 인스턴스가 아니기 때문에 결과는 false 



연산자 우선순위


순위 

연산자 

사용예 

 1

 ., [], ()

 ( a + b ) 

 2

전치형 ++, 전치형 -- 

단항 +, 단항-,

 ++a, --b 

 +a, -b 

 3

 후치형++, 후치형--

 a++, a--

 4

 (형 변환 유형), new 

(int) a, new 

 5

*, /, % 

 a * b, a / b, a % b 

 6

 +, - 

 a + b, a - b 

 7

<<, >>, >>> 

 a<<2, a>>2, a>>>2 

 8

<, >, <=, >=, instanceof 

 a<b, a>b, a<=b, a>=b,

"test" instanceof String 

 9

==, != 

a == b, a != b 

 10

 & 

a & b 

 11

 ^ 

 a ^ b 

 12

 | 

 a | b 

 13

 && 

 a && b 

 14

 || 

 a || b 

 15

 ? :  

 (a > b)? a : b 


반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - 중첩 클래스  (0) 2013.10.08
JAVA 가비지 컬렉션  (2) 2013.10.06
JAVA - 기타 제한자.  (0) 2013.10.04
JAVA - 접근 제한자.  (0) 2013.09.30
JAVA - 검증, 예외  (0) 2013.09.30