코드 그라데이션

연산자 본문

Java/개념 정리

연산자

완벽한 장면 2023. 1. 13. 08:24

연산자

1. 산술 연산자 

: 사칙연산

 

나누기

- 피연산자가 실수일 때는 몫을 정수까지만 계산하고 나머지를 리턴한다. 실수 5.0을 2.3으로 나누면 정수의 몫 2를 버리고 나머지 0.4를 리턴한다. 실수 나눗셈을 하면 2.1739가 나오지만 몫을 정수까지만 계산하여 나머지만 구한다.

- 나머지 연산자는 홀짝 판별에 종종 사용된다. value가 짝수인지 점검하려면 다음 조건식을 사용한다.

if(value % 2 ==0){
            
        }

 

2. 대입 연산자

* 좌변값: 대입 연산자의 왼쪽에 올 수 있는 값.

- 실제 메모리를 점유하고 있고, 값을 기억할 수 있는 대상. 변수가 완전한 좌변값.

* 우변에는 하나의 값을 리턴하는 모든 값.

 

** 복합 대입 연산자는 자기 자신과 피연산자를 연산하여 자기 자신에게 다시 대입하는 값.

ex) a = a+1; ---> a +=1;

ex2)

class JavaTest {
	public static void main(String[] args) {
		int value = 2;
		value += 3; //2로 초기화한 변수 value에 3 더하고 2를 다시 곱함.
		System.out.println("value = " + value); // value = 5
		value *= 2; // 여기에 2를 다시 곱합
		System.out.println("value = " + value); // value = 10
	}
}

 

3. 증감 연산자

ex) 3개 모두 동일한거야.

a = a + 1;

a +=1;

a ++

 

주의, 전위형과 후위형

형식 예시 설명
전위형(Prefix) ++a 변수의 값을 먼저 증가시킨 후 리턴한다.
후위형(Postfix) a++ 변수의 값을 먼저 리턴하고 증가시킨다.
class JavaTest {
	public static void main(String[] args) {
		int value = 2;
		int a = ++value;
		System.out.println("value = " + value + ", a = " + a); // value=3, a=3;
        
        // 값 2를 가지는 value를 1 증가시킨 후 a를 대입하되, 한 번은 전위형, 한 번은 후위형을 사용.
        // 증가 후 value가 3이 되는 것은 같지만, 이 값을 대입받는 a의 값이 다르다.
		
		value = 2;
		a = value++;
		System.out.println("value = " + value + ", a = " + a); // value=3, a=2;
	}
}

 

4. 부호 연산자

- 산술 연산자와 모양은 같지만 부호 연산자는 단항 연산자이고, 산술 연산자는 이항 연산자이다. 이렇게 구분.

 

 

논리 연산자

1. 비교 연산자

: = 는 대입 연산자, ==는 비교 연산자. // 부등호는 등호(=) 먼저 쓰지 않는다!

 

- 상등 연산자로 참조형을 비교하면 같은 주소를 가리키는지 비교하여 문자열이나 배열이 같은 객체인지 조사한다.

- 이에 비해 대소를 따지는 비교 연산자는 크고 작은 순서가 있는 수치값에만 사용할 수 있다.

- 객체는 크다, 작다의 순서를 정할 수 없어 부등 비교는 할 수 없다.

** 상등, 비교 연산자의 결과는 진위형이며 boolean 타입이다. 그러나 대개의 경우 변수에 대입 받기보다 if 문이나 for, while문의 조건식에 비로 사용한다.

 

2. 논리 연산자

&&, ||는 양변에 논리값을 취하는 이항 연산자이며, !는 하나의 논리값만 취하는 단항 연산자이다.

연산자 이름 설명
&& and 양변이 모두 참일 때만 참을 리턴
|| or 양변 중 하나라도 참이면 참을 리턴
! not(논리 부정) 논리값의 평가 결과를 반대로 뒤집는다

 

3. 삼항 조건 연산자

조건식 ? 참값 : 거짓값

예시: 12보다 작으면 오전 출력, 크면 오후를 출력

int h = 11;
String result2 = (h<12) ? "오전" : "오후";
System.out.println(result2);

 

캐스트 연산자

- 연산자의 좌우변은 타입이 같아야 하는 게 원칙. 하지만 가끔 다를 때가 있어.

- byte나 short는 수식 내에서 항상 int 타입으로 변환한 후 연산한다. 

- 현재값보다 변수의 타입에 따른 범위가 중요하다. int에 저장 가능한 값을 byte에 항상 안전하게 대입할 수 없다.

 체급이 다른 변수에 억지로 끼워 맞추는 것은 위험하다. '

 꼭 대입하려면 변수의 타입을 강제로 변환하여 양변을 맞춰야 하는데 이 때 캐스트 연산자를 사용한다.

 

(타입) 변수

 

- 캐스트 연산자는 피연산자의 값을 잠시 원하는 타입으로 바꾸는 것이지 변수의 타입 자체를 바꾸는 것은 아니다. 

- 문자열과 수치형을 상호 변환하려면 별도의 메서드를 사용해야 한다.

 

문자열 "123" ---- IntegerParseInt()----> 정수 123

정수 123 ----------String.valueOf() -----> 문자열 "123"

 

정수 123을 String.valueOf() 메서드를 호출해도 되지만, "" + value 수식으로 자동으로 문자열로 바꿀 수도 있다.

 

By. 자바 정복(시대고시기획)

728x90

'Java > 개념 정리' 카테고리의 다른 글

조건문과 반복문  (0) 2023.01.13
배열  (1) 2023.01.13
연산자 우선순위  (0) 2023.01.13
자바의 특징과 자바 언어, 명칭 규칙  (0) 2023.01.13
프로그래밍 언어와 Java  (0) 2023.01.13
Comments