5강. 여러 가지 연산자(1)
- Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
- Section 0. 자바 기본 익히기
- 5강 "여러 가지 연산자(1)"
- 항과 연산자 > 대입 연산자 > 산술 연산자 > 증감 연산자 > 관계 연산자 > 논리 연산자
항과 연산자
- 항(operand) : 연산에 사용되는 값
- 연산자(operator) : 항을 이용하여 연산하는 기호
연산자 | 설명 | 예시 |
---|---|---|
단항 연산자 | 항이 한 개인 연산자 | ++num |
이항 연산자 | 항이 두 개인 연산자 | num1 + num2 |
삼항 연산자 | 항이 세 개인 연산자 | (5>3) ? 1 : 0 |
대입 연산자
- 변수에 값을 대입하는 연산자
- 연산의 결과를 변수에 대입
- 우선 순위가 가장 낮은 연산자
- 왼쪽 변수(l value)에 오른쪽 변수(값) (r value)를 대입
int age = 24; //age라는 변수에 24라는 값을 대입함
산술 연산자
- 사칙연산에 사용되는 연산자
int age = 24; //age라는 변수에 24라는 값을 대입함
- 사칙연산에 사용되는 연산자
연산자 | 기능 | 예시 | 결과 |
---|---|---|---|
+ | 두 항을 더한다. | 5 + 3 | 8 |
- | 앞에 있는 항에서 뒤에 있는 항을 뺀다. | 5 - 3 | 2 |
* | 두 항을 곱한다. | 5 * 3 | 15 |
/ | 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구한다. | 5 / 3 | 1 |
% | 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구한다. | 5 % 3 | 2 |
증가 감소 연산자
- 단항 연산자
- 1만큼 더하거나 1만큼 뺄 때 사용하는 연산자
- 항의 앞/뒤 위치에 따라 연산의 결과가 달라짐에 유의
연산자 | 기능 | 예시 |
---|---|---|
++ | 항의 값에 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 감소함
}
}
증감 연산자는 연산자 위치에 따라 연산의 결과가 달라지는 것을 확인할 수 있다.
관계 연산자
- 이항 연산자
- 연산의 결과가 true(참), false(거짓)으로 반환된다.
연산자 | 기능 | 예시 (num=5;) | 결과 |
---|---|---|---|
> | 왼쪽 항이 오른쪽 항보다 크면 참, 아니면 거짓을 반환 | num > 3; | true |
< | 왼쪽 항이 오른쪽 항보다 작으면 참, 아니면 거짓을 반환 | num < 3; | false |
>= | 왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓을 반환 | num >= 5; | true |
<= | 왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓을 반환 | num <= 5; | true |
== | 두 개 항의 값이 같으면 참, 아니면 거짓을 반환 | num == 3; | false |
!= | 두 개 항이 다르면 참, 아니면 거짓을 반환 | num != 3; | true |
논리 연산자
- 관계 연산자와 혼합하여 많이 사용 된다.
- 연산의 결과가 true(참), false(거짓)으로 반환된다.
연산자 | 기능 | 예시 | 결과 |
---|---|---|---|
&& (논리 곱) | 두 항이 모두 참인 경우에만 결과값이 참 그렇지 않은 경우는 모두 거짓 | (5>3) && (5==2) | false |
|| (논리 합) | 두 항 중 하나의 항만 참이면 결과 값이 참 항이 모두 거짓이면 결과 값이 거짓 | (5==3) || (5!=3) | true |
! (부정) | 단항 연산자 참인 경우에는 거짓으로, 거짓인 경우에는 참으로 바꾼다. | !(5==3) | true |
단락 회로 평가 (short circuit evaluation)
- 논리곱(&&)은 두 항이 모두 true일 때만 결과가 true이다.
=> 앞의 항이 false이면 뒤 항의 결과를 평가하지 않아도 false이다. - 논리합(||)은 두 항이 모두 false일 때만 결과가 false이다.
=> 앞의 항이 true이면 뒤 항의 결과를 평가하지 않아도 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 실행 결과 앞의 항의 결과로 인해 논리곱, 논리합 연산 결과가 정해져서 뒤 항의 연산은 실행되지 않았음을 확인할 수 있다.
Author And Source
이 문제에 관하여(5강. 여러 가지 연산자(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@migratory_bird/Do-it-Java-Programming-5저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)