연산자와 피연산자란?
➡️ 연산자 : 연산을 수행하는 기호 (+, -, *, / 등)
➡️ 피연산자 : 연산자와 작업 대상 (변수, 상수, 리터럴, 수식)
연산자 종류
하단 표를 보면 알 수 있는것처럼, 크게 산술, 비교, 논리, 대입, 삼항 5가지로 나눌 수 있다.
종류 | 연산자 | 설명 |
산술 연산자 | + - * / % << >> | 사칙 연산과 나머지 연산이다. |
비교 연산자 | > < >= <= == != | 크고 작음과 같고 다름을 비교하며, 주로 조건문과 함께 사용한다. |
논리 연산자 | && || ! & | ^ ~ | AND 또는 OR으로 조건을 연결한다. |
대입 연산자 | = | 우변의 값을 좌변에 저장한다. |
삼항 연산자 | 조건식 ? : | 피연산자를 세 개나 가지는 연산자이다. |
증감 연산자
💡 증가 및 감소 연산자를 줄여서 증감 연산자라고 한다.
피연산자에 저장된 값을 1 증가 또는 감소시킨다.
정수와 실수 모두 가능하지만, 상수는 값을 변경할 수 없으므로 불가능하다.
➡️증가 연산자 (++) : 피연산자의 값을 1 증가시킨다.
➡️감소 연산자 (++) : 피연산자의 값을 1 감소시킨다.
하단 표를 보면 알 수 있는것처럼,
증감, 감소 연산자는 피 연산자 양쪽 모두에 위치할 수 있다.
왼쪽에 위치하면 전위형(prefix), 오른쪽에 위치하면 후위형(postifx)이라고 한다.
타입 | 설명 | 예시 |
전위형(prefix) | 값이 참조되기 전에 증가시킨다 | ++num; |
후위형(postifx) | 감이 참조된 후에 증가시킨다. | num++; |
public class Example {
public static void main(String[] args) {
int prefixNum = 10;
int postifxNum = 0;
// 전위형(prefix) : 참조되기 전 증가 시킨다.
postifxNum = ++prefixNum;
System.out.println("[prefix] prefixNum = " + prefixNum);
System.out.println("[prefix] postifxNum = " + postifxNum);
// 실행 결과 : prefixNum = 11, postifxNum = 11
// 초기화
prefixNum = 10;
postifxNum = 0;
// 후위형(postifx) : 참조된 후 증가 시킨다.
postifxNum = prefixNum++;
System.out.println("[postifx] prefixNum = " + prefixNum);
System.out.println("[postifx] postifxNum = " + postifxNum);
// 실행 결과 : prefixNum = 11, postifxNum = 10
}
}
산술 연산자
💡 사칙 연산자와 나머지 연산자가 존재한다.
주로 숫자 계산식에 사용된다.
⚠️ 숫자는 0으로 나눌 수 없다. 예외가 발생하니 참고해야한다.
public class Example {
public static void main(String[] args) {
String plusStr1 = "hello";
String plusStr2 = "World!";
int a = 5;
int b = 2;
// 실행 결과 : 문자열 더하기 ➡️ hello + World! = helloWorld!
System.out.println(plusStr1 + plusStr2);
// 실행 결과 : 더하기 ➡️ 5 + 2 = 7
System.out.printf("%d + %d = %d%n", a, b, a + b);
// 실행 결과 : 빼기 ➡️ 5 - 2 = 3
System.out.printf("%d - %d = %d%n", a, b, a-b);
// 실행 결과 : 곱하기 ➡️ 5 * 2 = 10
System.out.printf("%d * %d = %d%n", a, b, a*b);
// 실행 결과 : 나누기 ➡️ 5 / 2 = 2
System.out.printf("%d / %d = %d%n", a, b, a/b);
// 실행 결과 : 나머지 ➡️ 5 % 2 = 2.500000
System.out.printf("%d / %f = %f%n", a, (float)b, a / (float)b);
}
}
비교 연산자
💡 두 피연산자를 비교하기위해 사용되는 연산자이다.
주로 조건문 혹은 반복문과 함께 사용한다.
boolean형을 사용하여, 참 (true) 또는 거짓 (false)이라는 결과를 반환한다.
분류 | 연산자 | 설명 | 결과 |
대소 비교 |
> | 좌변 값이 클 때 | true / false |
< | 우변 값이 클 때 | ||
>= | 좌변 값이 크거나 같을 때 | ||
<= | 우변 값이 크거나 같을 때 | ||
등가 비교 |
== | 두 값이 같을 때 | |
!= | 두 값이 다를 때 |
논리 연산자
💡 boolean형을 사용하여, 참 (true) 또는 거짓 (false)이라는 결과를 반환한다.
➡️ ! (NOT) : 피연산자가 true면 false, false면 true를 반환한다.
➡️ && (AND) : 피연산자 양쪽 모두 true 일 때 true를 반환한다.
➡️ || (OR) : 피연산자 한쪽만 true 일 때 true를 반환한다.
public class Example {
public static void main(String[] args) {
int a = 5;
int b = 2;
// ! (NOT) 실행 결과 : !(a>b) = false
System.out.println("!(a>b) = " + !(a>b));
// && (AND) 실행 결과 : a > 3 && b < 3 = true
System.out.println("a > 3 && b < 3 = " + (a > 3 && b < 3));
// || (OR) 실행 결과 : a > 4 || b > 3 = true
System.out.println("a > 4 || b > 3 = " + (a > 4 || b > 3));
}
}
OUTRO
오늘은 연산자에 대해 알아봤습니다.
적절하게 사용하는게 중요하다고 생각하고,
여러가지 방법으로 접근해보면서 연습하시는걸 추천드립니다.
그러면 다음 포스팅에서 뵙겠습니다.
'Language > Java' 카테고리의 다른 글
[Java] 불변 객체 (Immutable Object)란? (0) | 2024.04.08 |
---|---|
[Java] 기본형과 참조형(Primitive Type & Reference Type) (0) | 2024.04.06 |
[Java] 클래스, 객체, 메서드, 생성자 (0) | 2024.03.30 |
[Java] 변수와 데이터 타입이란? (0) | 2024.03.26 |
[Java] 자바(Java)란 무엇인가? (0) | 2024.03.25 |