JAVA - 연산자들(2)

뫄뫄(ahk)·2021년 4월 8일
0

JAVA

목록 보기
3/7
post-thumbnail

대입연산자

📌 =

  • 우변의 데이터를 좌변의 변수에 저장하는 연산자입니다
    따라서 연산방향은 오른쪽 -> 왼쪽이 되겠죠?
  • 연산자 중에서 우선순위가 가장 낮아서 다른 모든 연산을 마친 후에 대입이 됩니다

확장(복합) 대입연산자

📌 +=, -=, /=, *=, %=, 등등..

  • 대입연산자와 산술연산자를 조합한 연산자입니다
  • 좌변과 우변의 산술연산을 한 다음 그 결과값을 좌변의 변수에 저장합니다
  • 중간 과정에 자동 타입 변환이 일어나지 않아 특정 데이터 타입의 변수에 다른 타입의 데이터를 저장할 수 있습니다. 물론 overflow가 생기겠지만요.
  • 위의 특성 때문에 Char 타입 변수 값을 변화시킬 때 확장 대입연산자를 많이 사용합니다.
Byte b = 1;
b = (byte)(b + 1);     //b + 1의 결과값이 int형이기 때문에 casting을 해야하지만
b += 1;                //이 경우는 casting을 하지 않아도 에러가 발생하지 않는다.

비교 연산자

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

  • 두 피연산자의 대소 또는 동등을 비교하여 true 또는 false값을 리턴합니다.
  • 리턴되는 결과값을 바로 사용하거나 boolean타입 변수에 저장할 수 있어요.
  • 데이터 타입이 다른 피연산자를 비교할 때는 동일한타입으로 일치시킨 후에 비교연산을 수행합니다.(산술연산과 동일)

🤷‍♀️ 같은 값이지만 다른 값으로 취급되는 경우도 있습니다

0.1 == 0.1f

/* Float 타입이 double타입으로 변환될 때 실수 근사치 표현에의해서 잘못된 연산 결과가 나온다. */

(float)0.1 == 0.1f

/* => double 형을 float으로 casting해서 오류를 방지할  수 있다. */

논리 연산자

  • 두 피연산자간의 논리적인 판별을 수행하는 연산자입니다
  • 피연산자는 모두 boolean 타입 데이터(true, false)만 사용 가능하며, 결과값도 boolean 타입으로 리턴합니다

📌 AND연산자(&, &&, 논리곱)

  • 두 피연산자 모두가 true면 결과값이 true, 하나라도 false면 결과값이 false

📌 OR연산자(|, ||, 논리합)

  • 두 피연산자 중 하나라도 true면 결과값이 true

📌 NOT연산자(!, 논리부정)

  • 단항 연산자, 피연산자 '앞'에 !기호를 붙임
  • 현재 boolean값을 반대로 반전

📌 XOR연산자 (^, 배타적 논리합exclusive or)

  • 두 피연산자가 서로 다를 경우 결과값이 true, 같을 경우는 false

  • 피연산자의 자리에 관계연산식이 와서 대소관계에 대한 논리적인 판별을 할수 있습니다

증감연산자

📌 ++, --

  • 단항연산자
  • 피연산자의 앞 또는 뒤에 붙어서 1만큼 증가 또는 감소시키는 연산자입니다
  • 단독으로 쓰일 때는 증감연산자의 위치는 큰 영향을 미치지 않지만, 다른 연산과 결합하여 사용될 때 위치에 따라 결과가 다릅니다💥주의!💥
  • 중간과정에 자동 타입변환이 일어나지 않습니다
  • 다른 연산자와달리 피연산자의 값을 직접 변경, 대입하는 연산자입니다

1. 선행 연산자

📌 ++a, --a

  • 피 연산자 앞에 위치하여 1씩 증가 또는 감소 시킵니다

💥 다른 연산과 결합하여 사용할 때는 먼저 피연산자의 값을 1 증가시킨 후 다음 연산에 참여합니다

	Int a = 10, b;
	b = ++a;
	System.out.println(b);
	System.out.println(a);
	-----------------------------
	11
	11

2. 후행연산자

📌 a++, a--

  • 피 연산자 뒤에 위치하여 1씩 증가 또는 감소시킨다.

💥 다른 연산과 결합하여 사용할 때는 먼저 다른 연산에 참여한 후 1을 증가시킨다.

	Int a = 10, b;
	b = a++;
	System.out.println(b);
	System.out.println(a);
	-----------------------------
	10
	11

삼항연산자(=조건연산자)

📌 조건식 ? 값1 : 값2

  • 조건식이 참일 때 값1, 조건식이 거짓일 때 값2가 리턴됩니다
  • 값1, 값2의 자리에 또 다른 삼항연산자가 올 수 있습니다
	Int a = 5;
	a > 0 ? "a는 양수" :  a < 0 ? "a는 음수" : "a는 0";

🥕 Null String
= 다른 데이터 타입을 문자열 타입으로바꾸는 역할

🥕 Boolean
문자열 외에 다른 타입과는 연산할 수 없습니다

🥕 연산자의 우선순위

우선순위표 출처
https://kephilab.tistory.com/28

profile
NONONONONONOYes!

0개의 댓글