제이제이
article thumbnail

 

이항 연산자


ex) 다음의 예를 통해 피연산자와 연산자 다시 알아봅시다.

      2 + 1 ,  2 -1,  2 * 3,  3 / 4

 

  • 피연산자 : 2, 1, 3, 4
  • 연산자(사칙연산) : +(더하기), - (뺄셈), *(곱셈), /(나눗셈)
  • 위의 예처럼 피연산자가 2개인 연산자들을 “이항 연산자”라고 부릅니다.
  • 이항 연산자는 산술 연산자, 복합 연산자, 관계 연산자, 논리 연산자로 구분됩니다.
각각의 연산자는 사용하는 의미에 따라 구분되며 별도로 결합 방향과 굳이 우선 순위는 처음에는 외울 필요는 없습니다.

 

산술 연산자

  • 사칙 연산(덧셈, 뺄셈, 나눗셈, 곱셈, 나머지)을 구하는데, 사용하는 연산자입니다.

 

  • 다음의 예를 통해 먼저 산술 연산자를 살펴 봅시다.

 

💻 예시 코드

class ArithOp{
	public static void main(String[] args){
		int num1 = 8, num2 = 4; 

		//산술 연산자를 사용해 연산과정을 진행
	        System.out.println("+ 연산자에 의한 결과 : "+ (num1 + num2));
                System.out.println("- 연산자에 의한 결과 : "+ (num1 - num2));
		System.out.println("* 연산자에 의한 결과 : "+ (num1 * num2));
		System.out.println("/ 연산자에 의한 결과 : "+ (num1 / num2));
		System.out.println("% 연산자에 의한 결과 : "+ (num1 % num2));

 }
}

 

📸 출력 결과

+ 연산자에 의한 결과 : 12
- 연산자에 의한 결과 : 4
* 연산자에 의한 결과 : 32
/ 연산자에 의한 결과 : 2
% 연산자에 의한 결과 : 0

 

복합 대입 연산자

  • 대입 연산자가 다른 연산자와 묶여서 정의된 형태의 연산자를 의미합니다.
  • 실제로 프로그래밍을 하면서 편리하여 자주 사용됩니다.
  • 아래의 코드를 통해 복합 대입연산자를 살펴봅시다.

 

💻 예시 코드

class ComAssignOp{
	public static void main(String[] args){
		int num1 = 7, num2 = 7;

		num1 = num1 - 3; //num1의 값 = 4
		num2 -= 3; //num2 - 3이므로 num2의 값 = 4

		System.out.println("- 연산자에 의한 결과 : "+ num1);
		System.out.println("-= 연산자에 의한 결과 : "+ num2);

   }
}

 

📸 출력 결과

4
4

 

관계 연산자

  • 두 개의 피연산자 사잉에서 크기 및 동등 관계를 비교하는 연산자입니다.
  • 이에 "비교 연산자"라고 불립니다.
  • 관계 연산자를 통해, 비교함으로써 참이면 true,거짓이면 false를 출력합니다.
  • 아래의 예를 통해서 관계 연산자를 살펴봅시다.

 

💻 예시 코드

class RelationOp{
	public static void main(String[] args){
			
		System.out.println("4 >= 3 " + (4 >= 3 ) ) ;
		System.out.println("4 <= 3 " + (4 <= 3 ) ) ;
		System.out.println("8 == 8.0 " + (8 == 8.0 ) ) ;
		System.out.println("8.0 != 8 " + (8.0 != 8 ) ) ;

 }
}

 

📸 출력 결과

4 >= 3 : true
4 <= 3 : false
8 == 8.0 : true
8.0 != 8 : false

 

👩🏻‍🏫 설명

  • 출력 결과를 살펴보면 8.0과 8이 같다(참: true)라고 출력하고 있습니다.
  • 이는 자동형 변환을 통해  8(int형)이 8.0(double 형)으로 변환되어 비교되기 때문입니다.

 

논리 연산자

  • 논리 연산자 또한 피연산자 두개를 비교하여 참(true), 거짓(false)를 판단하여 출력하는 연산자입니다.
연산자 예시 기능
&& A&&B A와 B 모두 참이면 참이다.
|| A || B A 혹은 B 둘 중 하나만 참이면 참이다.
A와 B 모두 거짓이여야지 거짓이다.
! ! B B가 아니라면 참이고 B라면 거짓이다.

 

 

  • 컴퓨터에는 논리 연산자의 연산 결과를 나타낸 표를 가리켜 ‘진리표’라고 하는데 이를 먼저 보고 논리 연산자를 알아봅시다.

진리표1)

피연산자(A) 피연산자(B) 논리 연산자의 &&의 결과
A B A && B
true true true
true false false
false true false
false false false

 

진리표2)

피연산자(A) 피연산자(B) 논리 연산자의 ||의 결과
A B A || B
true true true
true true true
true true true
false false false

 

진리표3)

피연산자(B) 논리 연산자의 !B의 결과
B ! B
true false
false true

 

  • 다음의 코드를 통해 논리 연산자를 살펴봅시다.

 

💻 예시 코드

class LogicalOp{
	public static void main(String[] args){
	    char ch1 = 'b', ch2 = 'B';
	    boolean result1, result2;

	    result1 = (ch1 > 'a') && (ch1 < 'z') ;
	    result2 = (ch2 < 'A') || (ch2 < 'Z') ;

	    System.out.println("&& 연산자에 의한 결과 : "+ result1);
	    System.out.println("|| 연산자에 의한 결과 : "+ result2);
	    System.out.println("! 연산자에 의한 결과 : "+ !result2);

 }
}

 

📸 출력 결과

&& 연산자에 의한 결과 : true
|| 연산자에 의한 결과 : true
!  연산자에 의한 결과 : false

 

단항 연산자


  • 앞서 살펴본 이항 연산자와 다르게 피연산자가 하나인 연산자인 단항 연산자라고 부릅니다.
  • 단항 연산자는 부호 연산자, 증감 및 감소연산자(Prefix, Postfix)로 구성되어 있습니다.

 

1.부호 연산자

부호 연산자는 덧셈과 뺄셈을 의미하는 +,-를 의미합니다.
  • +는 자연수를 의미하고 -는 음수를 의미합니다.

ex)

    int n = 5; ( 자연수의 + 는 보통 생략됩니다.)

    int n. = -5;

  • 다음의 코드를 통해 부호 연산자를 살펴 봅시다.

 

💻 예시 코드

class UnaryAddMin{
	public static void main(String[] args){
		int number1 = 5;
		int number2 = 7;

		System.out.println(number1);
		System.out.println(number2);
	
		int number3 = - number1;//number3에 -5가 대입
		int number4 = - number2; //number4에 -7이 대입

		System.out.println(number3);
		System.out.prinltn(number4);

 }
}

 

📸 출력 결과

5
7
-5
-7

 

증감 및 감소 연산자(Prefix,Postfix)

  • 증감 및 감소 연산자(prefix,postfix)는 변수에 저장된 값을 하나 증가 하거나 감소시키는 기능을 가진 연산자입니다.
  • ++과 - - 로 구성되어 있으며 변수에 먼저 증감과 감소를 반영하는 Prefix와 Postfix로 구별 됩니다.

 

증감 연산자: Prefix ++ , —

연산자 예시 의미
++ val = ++a; 변수 val에 저장된 값(피연산자)의 값에 1을 증가하여 바로 반영
-- val = --a; 변수 val에 저장된 값(피연산자)의 값에 1을 감소하여 바로 반영

 

  • 다음의 코드를 통해 증감 연산자 Prefix를 살펴 봅시다.

 

💻 예시 코드

class PrefixOp{
	public static void main(String[] args){
		int number = 9;
		System.out.println(++number);
		System.out.println(++number);
		System.out.println(++number);

 }
}

 

📸 출력 결과

10
11
12

 

증감 연산자: Post ++ , —

연산자 예시 의미
++ val = a++; 변수 val에 저장된 값(피연산자)의 값을 다음의 줄의 실행에 1 증가 반영
-- val = a--; 변수 val에 저장된 값(피연산자)의 값을 다음의 줄의 실행에  1 감소 반영

 

  • 다음의 예를 통해 증감 연산자 Postfix를 살펴 봅시다.

💻 예시 코드

class PostfiOp{
	public static void main(String[]args){
		int numer = 10;
		System.out.println((numer++) + " ");
		System.out.println((numer++) + " ");
		System.out.println((numer++) + " ");

		System.out.println((numer--) + " ");
		System.out.println((numer--) + " ");
		System.out.println((numer--) + " ");

 }
}

 

📸 출력 결과

10 11 12
12 11 10

 

📒 Reference (참고 자료)


  1. 윤성우의 열혈 자바
  2. TCP 스쿨 코딩교육 티씨피스쿨
 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

profile

제이제이

@아사비치즈스틱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!