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.)