JAVA/Do it! 자바 프로그래밍 입문

자바의 기본 연산자

백위한 2024. 1. 16. 12:54

Do it! 자바 프로그래밍 입문

첫째마당 자바 기본 익히기

03 자바의 여러 가지 연산자

03-1 기본 연산자

 

 

항과 연산자

연산자 operator: 연산에 사용하는 기호

항 operand: 연산에 사용하는 값

 

연산자 설명 연산 예
단항 연산자 항이 한 개인 연산자 ++num
이항 연산자 항이 두 개인 연산자 num1 + num2;
삼항 연산자 항이 세 개인 연산자 (5 > 3) ? 1 : 0;

 

 

대입 연산자 assignment operator

  • 변수에 값을 대입하는 연산자
  • 이항 연산자 중 우선순위가 가장 낮다.

 

 

부호 연산자

더하기, 빼기 연산에 쓰는 이항 연산자이면서 부호를 나타내는 단항 연산자로도 사용한다.

 

연산자 기능 연산 예
+ 변수나 상수 값을 양수로 만든다. +3
- 변수나 상수 값을 음수로 만든다. -3

 

 

산술 연산자

사칙 연산에서 사용하는 연산자

 

연산자 기능 연산 예
+ 두 항을 더한다. 5 + 3
- 앞에 있는 항에서 뒤에 있는 항을 뺀다. 5 - 3
* 두 항을 곱한다. 5 * 3
/ 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구한다. 5 / 3
% 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구한다. 5 % 3

 

package assignment;

public class OperationEx {

	public static void main(String[] args) {
    
		int age = 24;
		System.out.println(age);
		
		int num = 10;
		int num2 = -num;
		System.out.println(num);
		System.out.println(num2);

		num = -num;
		System.out.println(num);
		
	}

}

 

 

증가·감소 연산자

  • 단항 연산자
  • 연산자 앞이나 뒤에 사용하며 값을 1만큼 늘리거나 1만큼 줄인다.

 

연산자 기능 연산 예
++ 항의 값에 1을 더한다. val = ++num; // 먼저 num 값이 1 증가한 후 val 변수에 대입
val = num++; // val 변수에 기존 num 값을 대입한 후 num 값 1 증가
-- 항의 값에서 1을 뺀다. val = --num; // 먼저 num 값이 1 감소한 후 val 변수에 대입
val = num--; // val 변수에 기존 num 값을 대입한 후 num 값 1 감소

 

 

관계 연산자

  • 이항 연산자
  • 두 개의 항 중 어느 것이 더 큰지, 작은지, 같은지 등의 여부를 검사
  • 결과 값은 참(true) 혹은 거짓(false)으로 반환

 

연산자 기능 연산 예
> 왼쪽 항이 크면 참을, 아니면 거짓을 반환한다. num > 3;
< 왼쪽 항이 작으면 참을, 아니면 거짓을 반환한다. num < 3;
>= 왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓을 반환한다. num >= 3;
<= 왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓을 반환한다. num <= 3;
== 두 항이 같으면 참, 아니면 거짓을 반환한다. num == 3;
!= 두 항이 다르면 참, 아니면 거짓을 반환한다. num != 3;

 

package assignment;

public class OperationEx2 {
	
	public static void main(String[] args) {
		
		int num = 10;
		System.out.println(num++); //10
		System.out.println(num); // 11
		
		System.out.println(3>5); // false
		int num1 = 10;
		int num2 = 5;
		boolean flag = (num1 > num2);
		System.out.println(flag); // true
		
	}

}

 

 

논리 연산자

연산자 기능 연산 예
&& (논리 곱) 두 항이 모두 참인 경우에만 결과 값이 참이다. 그렇지 않은 경우는 거짓이다. boolean val = (5 > 3) && (5 > 2);
|| (논리 합) 두 항 중 하나라도 참이면 결과 값이 참이다. 두 항이 모두 거짓이면 결과 값은 거짓이다. boolean val = (5 > 3) || (5 < 2);
! (부정) 단항 연산자이다. 참인 경우에는 거짓으로 바꾸고, 거짓인 경우에는 참으로 바꾼다. boolean val = !(5 > 3);

 

단락 회로 평가 Short Circuit Evalation; SCE

: 논리 곱 연산과 논리 합 연산을 할 때 두 개 항을 모두 실행하지 않더라도 결과 값을 알 수 있는 경우에, 나머지 항은 실행되지 않는 것.

 

package assignment;

public class OperationEx3 {

	public static void main(String[] args) {
		
		int num1 = 10;
		int i = 2;
		
		boolean value = ((num1 = num1 + 10) > 10) && ((i = i + 2) > 10);
		System.out.println(value); // false
		System.out.println(num1); // 20
		System.out.println(i); // 4
		
		boolean value2 = ((num1 = num1 + 10) > 10) || ((i = i + 2) > 10);
		System.out.println(value2); // true
		System.out.println(num1); // 30
		System.out.println(i); // 4
	}

}

 

 

복합 대입 연산자

대입 연산자와 다른 연산자를 조합해 하나의 연산자처럼 사용하는 연산자

 

연산자 기능 연산 예
+= 두 항의 값을 더해서 왼쪽 항에 대입한다. num1 += 2;
num1 = num1 + 2;와 같음
-= 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입한다. num1 -= 2;
num1 = num1 - 2;와 같음
*= 두 항의 값을 곱해서 왼쪽 항에 대입한다. num1 *= 2;
num1 = num1 * 2;와 같음
/= 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입한다. num1 /= 2;
num1 = num1 / 2;와 같음
%= 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입한다. num1 %= 2;
num1 = num1 % 2;와 같음
<<= 비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입한다. num1 <<= 2;
num1 = num1 << 2;와 같음
>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입한다(왼쪽에 채워지는 비트 값은 부호 비트와 동일하다). num1 >>= 2;
num1 = num1 >> 2;와 같음
>>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입한다(왼쪽에 채워지는 비트 값은 0이다). num >>>= 2;
num1 = num1 >>> 2;와 같음
&= 두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입한다. num1 &= num2;
num1 = num1 & num2;와 같음
|= 두 항의 | 비트 연산 후 그 값을 왼쪽 항에 대입한다. num1 |= num2;
num1 = num1 | num2;와 같음
^= 두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입한다. num1 ^= num2;
num1 = num1 ^ num2;와 같음

 

 

조건 연산자

  • 삼항 연산자
  • 주어진 조건식이 참인 경우와 거짓인 경우에 다른 결과 값이 나온다.

 

연산자 기능 연산 예
조건식 ? 결과1 : 결과2 조건식이 참이면 결과1, 조건식이 거짓이면 결과2가 선택된다. int num = (5 > 3) ? 10 : 20;

 

package assignment;

public class OperationEx4 {

	public static void main(String[] args) {
		
		int num1 = 10;
		System.out.println(num1 += 1);
		
		System.out.println(num1 %= 10);
		num1 -= 1; // num1 = num1 - 1;
		System.out.println(num1);

		int num = (5 > 3) ? 10:20;
		System.out.println(num); // 10

	}

}

 

 

 

 

 

 

 

출처

Do it! 자바 프로그래밍 입문

https://product.kyobobook.co.kr/detail/S000001817902

'JAVA > Do it! 자바 프로그래밍 입문' 카테고리의 다른 글

자바의 연산자 우선순위  (0) 2024.01.16
자바의 비트 연산자  (0) 2024.01.16
형 변환  (0) 2024.01.08
상수와 리터럴  (0) 2024.01.08
자료형  (0) 2024.01.08