본문 바로가기
Java

[Java] 연산자; 비교연산자,논리연산자 그리고 삼항연산자 알기

by 나는 개발자 2020. 12. 21.
TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.

 

비교연산자 (관계연산자)

두 값을 비교하는 연산자이며 이항 연산자이다.

비교 연산을 수행한 결과 값은 논리값 (true/false)로 표시되며

조건에 만족하면 true, 만족하지 않으면 false가 된다. 

주로 조건문에 자주 사용된다.

 

[표현식과 의미]

 a < b : a가 b보다 작습니까?
 a > b : a가 b보다 큽니까?
 a <= b : a가 b보다 작거나 같습니까?
 a >= b : a가 b보다 크거나 같습니까?
 
 a == b : a랑 b랑 일치합니까?
 a != b : a랑 b랑 일치하지 않습니까?
 

 

활용 예시)

System.out.println("a > b : " + (a > b));

System.out.println("a <= b : " + (a <= b));

System.out.println("a == b : " + (a == b));

System.out.println("a != b : " + (a != b));

 

-> 1. 산술 연산 + 비교 연산을 사용하는 경우 짝수인지 홀수인지 판별 가능하다.

System.out.println("a가 짝수입니까 : " + ( a % 2 == 0));

System.out.println("a가 홀수입니까 : " + ( a % 2 == 1));

=> 즉, 2로 나눴을 때 나머지 값이 0이냐/ 1이냐를 가지고 짝수인지 홀수인지 판별한다

 

-> 2. 또한 양수인지 아닌지 출력 가능

System.out.println("사용자가 입력한 값은 양수입니까 : " + (0<num));

 

 

 

 

논리연산자

두 개의 논리값을 연산하는 연산자이며, 

두 가지의 종류를 가지고 있다.

 

  &&: 그리고, ~이면서 AND
  ||: 또는, ~이거나 OR

 

풀어서 표현식과 함께 얘기해보자면,

 

논리값 && 논리값

 * &&: 두 개의 조건이 모두 true여야 결괏값이 true. (and)
 * true && true = true
 * true && false = false
 * false && true = false
 * false && false = false

 * => && 연산자를 기준으로 앞의 결과가 false값이 나온다면 뒤의 조건은 굳이 연산하지 않는다.

 

논리값 || 논리값 

 * ||: 두 개의 조건이 하나라도 true면 결괏값이 true이다. (or)
 * true || true = true
 * true || false = true
 * false || true = true
 * false || false = false  

* => || 연산자를 기준으로 앞의 결과가 true값이 나온다면 뒤의 조건은 굳이 연산하지도 않는다.

 

 

앞(좌항)의 결과에 따라 뒤(우항)의 조건은 굳이 연산하지 않는다면?

사진 속 코드처럼, 우항의 결과값이 달라지게 된다.

 

 

삼항연

산자

3개의 항을 가지고 연산하는 연산자이다.

[표현식]

조건식 ? 참에해당하는결과값 : 거짓에해당하는결과값

 

예시1) 비교 연산자와 활용

int num = 1;

String result = (num > 0) ? "양수이다" : "양수가 아니다" ;

System.out.println( result );

===> console :  "양수가 아니다" 

 

예시2) 비교, 산술 연산자로 짝수인지 홀수인지 알아보는 활용 예시

 

int num = 4;

String result = (num % 2 == 0) ? "짝수이다." : "홀수이다." ;

System.out.println( result );

===> console : "짝수이다"

 

예시3) 비교 연산자와 논리 연산자로 영문자의 대소문자 구분

; 문자의 대소 비교: 문자는 각각 고유의 숫자가 있다 (유니코드 표 참고) (ex. 대문자 A=65)

char ch = 'C';

String result = (ch >= 'A' && ch <= 'Z') ? "대문자이다." : "대문자가 아니다.";

System.out.println( result );

===> console : "대문자이다"

 

예시4) 삼항 연산자 중첩 사용

양수인지, 음수인지, 0인지 정확한 판별이 필요할 때

조건식? 참의값 : (조건식2? 조건식2의참값 : 거짓값);

 

int num = 55;

String result = ( num > 0 ? "양수이다" : ( num=0? "0이다" : "음수이다" )

System.out.println( result );

===> 양수이다.

 

 

**예시5) 사용자에게 두 정수값과 덧셈이나 뺄셈의 산술 연산 문자를 하나 입력받아 셈을 해주는 활용

1. Scanner import

2. Scanner 호출

3. 사용자 입력값 받기 (출력 값 입력) + next변수

4. 삼항연산자 변수에 담기

    (여기서 int 변수와 char 변수인 '+'  '-' , 그리고 문자열인 "잘못입력하셨습니다"

    이 모든 것을 담을 수 있는 데이터 형식은 String으로 하며, 

     만약 "num1+num2"로 ""을 입력할 경우, 모두 문자열로 받아들이니 +""을 추가하기 

5. 결과값 출력 

 

 

댓글