- Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
- Section 0. 자바 기본 익히기
- 5강 "여러 가지 연산자(1)"
- 항과 연산자 > 대입 연산자 > 산술 연산자 > 증감 연산자 > 관계 연산자 > 논리 연산자
연산자 | 설명 | 예시 |
---|---|---|
단항 연산자 | 항이 한 개인 연산자 | ++num |
이항 연산자 | 항이 두 개인 연산자 | num1 + num2 |
삼항 연산자 | 항이 세 개인 연산자 | (5>3) ? 1 : 0 |
int age = 24; //age라는 변수에 24라는 값을 대입함
연산자 | 기능 | 예시 | 결과 |
---|---|---|---|
+ | 두 항을 더한다. | 5 + 3 | 8 |
- | 앞에 있는 항에서 뒤에 있는 항을 뺀다. | 5 - 3 | 2 |
* | 두 항을 곱한다. | 5 * 3 | 15 |
/ | 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구한다. | 5 / 3 | 1 |
% | 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구한다. | 5 % 3 | 2 |
연산자 | 기능 | 예시 |
---|---|---|
++ | 항의 값에 1을 더한다. | val = ++num; val = num++; |
-- | 항의 값에서 1을 뺀다. | val = --num; val = num--; |
public class OperationEx2 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 10;
System.out.println(++num1); //num1 값이 1 증가한 후 출력됨
System.out.println(num2++); //num2 값이 출력된 후 1 증가함
int num3 = 10;
int num4 = 10;
System.out.println(--num3); //num3 값이 1 감소한 후 출력됨
System.out.println(num4--); //num4 값이 출력된 후 1 감소함
}
}
증감 연산자는 연산자 위치에 따라 연산의 결과가 달라지는 것을 확인할 수 있다.
연산자 | 기능 | 예시 (num=5;) | 결과 |
---|---|---|---|
> | 왼쪽 항이 오른쪽 항보다 크면 참, 아니면 거짓을 반환 | num > 3; | true |
< | 왼쪽 항이 오른쪽 항보다 작으면 참, 아니면 거짓을 반환 | num < 3; | false |
>= | 왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓을 반환 | num >= 5; | true |
<= | 왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓을 반환 | num <= 5; | true |
== | 두 개 항의 값이 같으면 참, 아니면 거짓을 반환 | num == 3; | false |
!= | 두 개 항이 다르면 참, 아니면 거짓을 반환 | num != 3; | true |
연산자 | 기능 | 예시 | 결과 |
---|---|---|---|
&& (논리 곱) | 두 항이 모두 참인 경우에만 결과값이 참 그렇지 않은 경우는 모두 거짓 | (5>3) && (5==2) | false |
|| (논리 합) | 두 항 중 하나의 항만 참이면 결과 값이 참 항이 모두 거짓이면 결과 값이 거짓 | (5==3) || (5!=3) | true |
! (부정) | 단항 연산자 참인 경우에는 거짓으로, 거짓인 경우에는 참으로 바꾼다. | !(5==3) | true |
따라서 논리곱, 논리합 연산 시 앞의 항의 결과에 따라 뒤 항의 연산은 이루어지지 않을 수 있다.
public class OperationEx3 {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value1 = ((num1 = num1 + 10) < 10) && ((i = i + 2) < 10);
System.out.println(value1); //논리곱에서 앞 항의 결과가 거짓이므로 false
System.out.println(num1); //num1 = num1 + 10에 의해 20
System.out.println(i); //논리곱에서 앞 항이 거짓이었기 때문에 뒤 항은 실행되지 않아서 그대로 2
int num2 = 15;
int j = 3;
boolean value2 = ((num2 = num2 + 15) > 15) || ((j = j + 3) < 15);
System.out.println(value2); //논리합에서 앞 항의 결과가 참이므로 true
System.out.println(num2); //num2 = num2 + 10에 의해 20
System.out.println(j); //논리합에서 앞 항이 참이었기 때문에 뒤 항은 실행되지 않아서 그대로 3
}
}
Eclipse 실행 결과 앞의 항의 결과로 인해 논리곱, 논리합 연산 결과가 정해져서 뒤 항의 연산은 실행되지 않았음을 확인할 수 있다.