프로그래밍/java

[자바 JAVA] 연산자 ( 산술, 복합 대입, 증감, 비교, 논리, 삼항)

pupu91 2022. 6. 29. 18:51
반응형

 


산술연산자

 


 

  •  연산에 필요한 값이나 변수가 두 개인 이항 연산자
  •  우선 순위에 따라 연산되어 결과가 산출 됨 
  •  기본적인 피연산자들의 연산 방향은 왼쪽에서 오른쪽
  •  %는 나누기를 하고 난 나머지가 구해지는 연산

 


복합 대입 연산자

 


 

  • 다른 연산자와 대입 연산자가 결합한 것
  • 자기 자신의 값과 연산 후 연산 결과를 자기 자신에게 누적 대입

 

◎ 증감 연산과 비슷해 보이지만 증감연산자(++,==)는 1씩 증가
   대입 연산자는 원하는 값을 증가시키고 그 변수에 저장 가능!

int num = 12;

◎ 3 증가
num += 3; 
System.out.println("num : " + num);
◎ 5 감소
num -= 5;
System.out.println("num : " + num);
◎ 2배 증가
num *= 2;
System.out.println("num : " + num);
◎ 2배 감소
num /= 2;
System.out.println("num : " + num);

=== 실행 값 ====
num : 15
num : 10
num : 20
num : 10

◎ 산술 복합 대입연산자의 작성 순서에 주의하기
num =- 5;
System.out.println("num : " +num);
num : -5
산술 대입 연산자가 아닌 -5를 num에 대입한 것이 됨.

 

 

 


증감 연산자

 


 

  • 피연산자의 값에 1을 더하거나 빼는 연산자로 위치에 따라 결과 값이 다르게 나타남
  •  ++ : 1 증가의 의미
  •   -- : 1감소의 의미

 

전위연산 후위연산

int a = 10;
int b = ++a;
먼저 전위 연산 후 다른 연산 실행


int a = 10;
int b = a++;
다른 연산 우선 실행 후 후위 연산

 

 

 


 비교 연산자

 


 

  • 데이터가 같은지, 다른지, 혹은 대소 비교를 할 때 사용
  • 항상 논리 값(true false)이 결과 값
  • ' == '과 ' != '은 모든 자료형에 사용 가능
  • 비교 연산자( >, >=, <, <= )는 기본형 boolean과 참조형 String을 제외하고 나머지 자료형에 모두 사용 가능
  • 문자열도' ==' 과 ' !=' 은 비교 가능하지만 대소비교는 불가능하다.

 

 


논리 연산자

 


   

 1. 논리 값(true, false)를 취급하는 연산자

 

  •  && : 두 피연산자가 모두 true일 때 true 반환 (AND)
  •  ||   : 두 피연산자 중 하나만 true여도 true 반환 (OR)
  •  && 연산자가 || 연산자보다 우선순위가 높다.
  •   변수 >= 1 && 변수 <= 100 사용, <= 변수 <= 100 이렇게는 사용 불가! 

 

 

a b a&&b a||b
true true true true
b 값 추정 불필요
true false false true
b 값 추정 불필요
false false false
b 값 추정 불필요
true
false false false
b 값 추정 불필요
false

 

 

● 1부터 100 사이의 값인지 확인 

int num1 = 30;
System.out.println("1부터 100사이인지 확인 : " + (num1 >= 1 && num1 <= 100));
		
● 영어 대문자인지 확인
char ch1 = 'W';
System.out.println("영어 대문자인지 확인 : " + (ch1 >= 'A' && ch1 <= 'Z'));
		
● 대소문자 상관 없이 영문자 y인지 확인 
char ch2 = 'y';
System.out.println("영문자 y인지 확인 : " + (ch2 == 'y' || ch2 == 'Y'));
		
● 영문자인지 확인 

char ch3 = 'f';
ystem.out.println("영문자인지 확인 : " + 
((ch3 >= 'A' && ch3 <= 'Z') || (ch3 >= 'a' && ch3 <= 'z')));

A : 65, Z : 90, a : 97, z : 122 (중간의 91 ~ 96은 영문자가 아님) 
연산자 우선순위를 고려한다면 and 연산이 먼저 수행되기 때문에 괄호는 묶지 않아도 되지만
논리적으로 먼저 실행하는 내용을 괄호로 묶어주면 코드를 읽기에 좋다.

 

2.  논리 부정 연산자 

 

  •  ! : 논리 값을 부정하여 반대 값으로 변경, 제어문을 활용할 때 많이 쓰임

             ex) boolean bool1 = true;

              boolean bool2 = ! bool1;

 

 


삼항 연산자

 


 

  • 자바에서 유일하게 연산자 항목이 3개인 연산자이다.
  • 조건식 ? 식 1 : 식 2 ; (조건식 ? 참일 때 사용할 값 1 : 거짓일 때 사용할 값 2)

       ex ) int result1 = a > b ? a++ : b--;

              int result2 = a < b ? a++ : (b == 0 ? a== : b++); 

              (삼항 연산자 안에 삼항 연산자를 중첩하여 쓰는 것도 가능)

 

 

 


연산자 종류와 우선 순위

 


반응형