본문 바로가기
Java

자바 #003_연산자

by haheehee 2022. 12. 12.

연산자(Operator) - 연산에 사용되는 표시나 기호

피연산자(Operand) - 연산자와 함께 연산되는 데이터

연산식(Expression) - 연산자와 피연산자를 사용하여 기술한 식

 

자바에서 연산이 복합적으로 구성되어 있다면, 우선순위에 따라 수행된다.

  • 단항 - 이항 - 삼항
  • 산술 - 비교 - 논리 - 대입

순이다. 

우선순위가 같으면 왼쪽에서 오른쪽으로 수행된다. 

다만, 대입연산자는 반대로 오른쪽에서 왼쪽으로 수행된다.

 

우선순위 순으로 나열한 리스트(위가 높음) : 

  • 증감(++   --), 보호(+   -), 논리(!)
  • 산술(*   /   %)
  • 산술(+   -)
  • 비교(<   >   <   =    >   =   instanceof)
  • 비교(==   !=)
  • 논리(&)
  • 논리(^)
  • 논리(|)
  • 논리(&&)
  • 논리(||)
  • 조건(? :)
  • 대입(=   +=   -=   *=   /=   %=)

증감연산자

 

++혹은 --가 변수의 앞이나 뒤에 붙여 사용되는 연산자.

앞에 붙으면 실행 전에 증감이 나타나고, 

뒤에 붙으면 실행 후에 증감이 나타난다.

public class IncreaseDecreaseOperatorExample {

	public static void main(String[] args) {
		int x = 2;
		int y = 15;
		int z;
		
		
		x++;
		++x;
		System.out.println("x= " + x);	
		
		y--;
		--y;
		System.out.println("y= " + y); 
		
		z = x++;
		System.out.println("z= " + z);	
		System.out.println("x= " + x);	
		
		z = ++x;
		System.out.println("z= " + z);	
		System.out.println("x= " + x);	
		
		z = ++x + y++;
		System.out.println("z= " + z);	
		System.out.println("x= " + x);	
		System.out.println("y= " + y);	
	}

}

 

증감연산자 결과

 

 

논리 부정 연산자 (!)

 

true를 false로, false를 true로.

부정 값. (토글toggle 기능)

boolean타입에서만 사용.

public class DenyLogicOperatorExample {

	public static void main(String[] args) {
		boolean exclamation_mark = true;
		System.out.println(exclamation_mark);
		
		exclamation_mark = !exclamation_mark;
		System.out.println(exclamation_mark);

		exclamation_mark = !exclamation_mark;
		System.out.println(exclamation_mark);
	}

}

논리 부정 연산자 결과

 

산술연산자

+, -, *, /, %

피연산자가 byte, short, char 타입이면 int타입으로 변환 후 사용됨

피연산자가 정수 타입이고, long 타입이 포함되면, 모두 long 타입으로 변환됨

피연산자 중 실수 타입이 있으면, 허용범위가 큰 실수 타입으로 변환됨.

 

비교연산자

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

피연산자의 크고 작음을 비교하여 true 혹은 false를 산출 (왼쪽 피연산자가 기준이됨)

동등 비교 연산자(==과 !=)는 모든 타입에서 사용된다.

그 외 비교연산자는 boolean외 모든 기본 타입에서 사용된다.

 

논리연산자

  • AND(논리곱) : 피연산자가 모두 true일 경우에만 연산 결과가 true 
  • OR(논리합) : 피연산자 중 하나만 true이면 연산 결과가 true
  • XOR(배타적 논리합) : 피 연산자 하나는 true, 다른 하나는 false이면 연산 결과가 true
  • NOT(논리 부정) : 피 연산자의 논리 값을 바꿈(단항)

 

대입연산자

단순 대입 연산자 = : 오른쪽의 피연산자 값을 왼쪽 변수에 저장

복합대입 연산자

  • += : 변수=변수+피연산자
  • -= : 변수=변수-피연산자
  • *= : 변수=변수*피연산자
  • /= : 변수=변수/피연산자
  • %= : 변수=변수%피연산자
  • &= : 변수=변수&피연산자
  • |= : 변수=변수|피연산자
  • ^= : 변수=변수^피연산자

 

삼항연산자

3개의 피연산자를 사용하는 연산

? 앞의 조건식에 따라 콜론 앞뒤의 피연산자를 선택하여 사용

첫 연산식이 true일 시 : 앞 연산식 수행 / false일 시 : 뒤 연산식 수행

조건식 ? 값 또는 연산식(true일때) : 값 또는 연산식(false일때)

public class ConditionalOperationExample {

	public static void main(String[] args) {
		int samHang = 10;
		String result = (samHang < 20) ? "small" : "big";
		System.out.println(samHang + "은 20보다 작은가? " + result );
	}
}

삼항연산자 결과

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 혼자 공부하는 자바 (신용권)

'Java' 카테고리의 다른 글

자바 #005_참조  (0) 2022.12.12
자바 #004_조건문, 반복문  (0) 2022.12.12
자바 #002_변수, 리터럴  (0) 2022.12.08
자바 #001_자바 시작하기  (0) 2022.12.06
Java 내가 보려고 작성한 기본 기초 문법, 용어 정리  (0) 2022.12.05

댓글