JAVA/연산자

이항 연산자2

yayeun 2017. 1. 27. 19:45

문자열 연결 연산자(+)

: 문자열을 서로 결합하는 연산자

  - 문자열과 숫자가 혼합된 + 연산자는 왼쪽에서부터 오른쪽으로 연산이 진행된다.

1
2
String = "JDK" + 3 + 30;  //JDK33.0
String = 3 + 3.0 + "JDK";  //6.0JDK
cs



비교연산자 (<, <=, >, >=, ==, !=)

: 대소(<, <=, >, >=) 또는 동등(==, !=) 을 비교해서 boolean 타입인 true/false를 산출한다

 구분 

 연산식 

설명 

 동등 비교

 피연산자1 

 == 

 피연산자2 

 두 피연산자의 값이 같은지를 검사 

 피연산자1 

 != 

 피연산자2 

 두 피연산자의 값이 다른지를 검사 

 크기 비교 

 피연산자1 

 > 

 피연잔사2 

 피연산자1 이 큰지를 검사 

 피연산자1 

 >= 

 피연산자2 

 피연산자1 이 같거나 큰지를 검사 

 피연산자1 

 < 

 피연산자2 

 피연산자1이 작은지 검사 

 피연산자1 

 <= 

 피연산자2 

 피연산자1이 작거나 같은지를 검사 

: 피연산자가 char 타입이면 유니코드 값으로 비교 연산을 수행한다.

: 비교연산자에서도 연산을 수행하기전에 타입변환을 통해 피연산자의 타입을 일치시킨다.

  - 0.1 == 0.1f  와 같은 경우 결과값이 false 인데 이유는 0.1f 는 근사값으로 표현되어 0.1 보다 큰 값으로 나온다.


: String 타입의 문자열을 비교할때는 대소연산자(<,<=,>,>=)를 사용할 수 없고, 동등(==, !=) 비교 연산자는 사용할 수 있으나

  문자열이 같은지, 다른지를 비교하는 용도로는 사용되지 않는다.

  - 자바는 문자열 리터럴이 동일하다면 동일한 String 객체를 참조하도록 되어 있다. 

1
2
3
String s1 = "자바";
String s2 = "자바";  // s1와 s2 는 같은 번지값을 가지고 있다.
String s3 = new String ("자바"); //새로운 객체가 생성된 것이라서 s1,s2와는 다른 번지값을 가지고 있다.
cs

  * 동일한 String 객체이든 다른 String 객체이든 문자열만을 비교하고 싶다면 equals() 메소드를 사용한다.



논리 연산자 (&&, ||, &, |, ^, !)

: boolean 타입만 사용할 수 있다 

구분 

 설명 

 AND(논리곱 : && 또는 &) 

 피연사자 모두가 true 일 경우에만 연산 결과가 true

 OR (논리합 :  || 또는 |) 

 피연산자 중 하나만 true이면 연산 결과는 true 

 XOR (배타적논리합 : ^)

 피연산자가 하나는 true 이고 다른 하나가 false 일 경우에만 연산결과가 true 

 NOT(논리부정 : !) 

 피연산자의 논리값을 바꿈 

: &&와 & 는 산출결과가 같지만 연산과정이 다르다. && 는 앞의 피연산자가 false 이면 뒤의 피연산자를 평가하지 않고 바로 false로 산출을 낸다.

  그러나 &은 앞의 피연산자가 false여도 뒤의 피연산자를 평가한 다음 false로 산출을 낸다. 따라서 && 이 더 효율적으로 동작한다.

  || 와 |도 마찬가지이다.

  - 논리 연산은 흐름 제어문인 조건문(if), 반복문(for, while) 등에 주로 이용된다.

'JAVA > 연산자' 카테고리의 다른 글

삼항연산자  (0) 2017.01.27
이항 연산자3  (0) 2017.01.27
이항 연산자1  (0) 2017.01.24
단항 연산자  (0) 2017.01.24
연산자와 연산식  (0) 2017.01.24