코드 그라데이션
연산자 본문
연산자
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. 자바 정복(시대고시기획)
'Java > 개념 정리' 카테고리의 다른 글
조건문과 반복문 (0) | 2023.01.13 |
---|---|
배열 (1) | 2023.01.13 |
연산자 우선순위 (0) | 2023.01.13 |
자바의 특징과 자바 언어, 명칭 규칙 (0) | 2023.01.13 |
프로그래밍 언어와 Java (0) | 2023.01.13 |