Programming Language/Java

연산자(Operator) - 연산자, 종류, 삼항 연산자

Ma_Sand 2022. 2. 21. 16:30
반응형

1. 연산자

  : 연산을 수행하는 기호

 - +: 덧셈
 - -: 뺄셈
 - *: 곱셈
 - /: 나눗셈
 - %: 모듈러(Modular) → 나눗셈에서 나머지를 구함

 

 * 'a + 10'이라는 식이 있을 때, 변수 a와 상수 10은 피연산자이고, '+'가 연산자이다.

 

2. 연산자의 종류

 (1) 종류

  ① 산술 연산자: 사칙 연산(+, -, *, /)과 나머지 연산(%)

//산술 연산자
//  -> 이항 연산자로써 연산 방법, 우선 순위가 일반 수학 산술과 동일함.
public class plus {

    public void operator() {
        double d1 = 32;  //32.0
        double d2 = 10;  //10.0
        
        System.out.println("d1+d2= "+(d1+d2));  //42.0
        System.out.println("d1-d2= "+(d1-d2));  //22.0
        System.out.println("d1*d2= "+(d1*d2));  //320.0
        System.out.println("d1/d2= "+(d1/d2));  //3.2
        System.out.println("d1%d2= "+(d1%d2));  //2.0
    }
}

 

  ② 비교 연산자: 크고 작음과 같고 다름을 비교( >, <, >=, <=, ==, != )

     : 두 피연산자를 비교하는 데 사용되는 연산자, 주로 조건문과 반복문의 조건식에 사용,

       연산결과는 오로지 true와 false 중 하나

    a. 종류

      a-1. 크고 작음을 비교

비교연산자 연산결과
> 좌변 값이 크면, true or false
< 좌변 값이 작으면, true or false
>= 좌변 값이 크거나 같으면, true or false
<= 좌변 값이 작거나 같으면, true or false

 

      a-2. 일치하는지 비교(동등 비교)

비교연산자 연산결과
== 두 값이 같으면, true or false
!= 두 값이 다르면, true or false
public class Comparison {
    public void truth() {
        
        int x = 10;
        int y = 25;
        
        System.out.println("x < y: "+(x < y));      //x < y: true
        System.out.println("x <= y: "+(x <= y));    //x <= y: true
        
        //동등 비교
        boolean b1 = x==y;    //x는 y와 같다
        System.out.println("b1 = "+b1);   //b1 = false
        
        boolean b2 = x != y;   //x는 y와 같지 않다
        System.out.println("b2 = "+b2);   //b2 = true
        
    }
}

 

  ③ 논리 연산자: AND와 OR로 조건 연결( &&, ||, !, &, |, ^, ~ )

    a. 논리 연산자

       : 이항 연산자, 두 개의 논리값을 연산하는 연산자

 

      a-1. 표현법: 논리값 논리연산자 논리값 ☞ 결과값도 논리값

//AND 연산자(&&)
// -> 피연산자 양쪽 모두 true여야 최종 결과도 true가 된다.
import java.util.*; //Scanner 클래스를 사용하기 위해 추가함

public class practice {

    public void method1() {
       Scanner sc = new Scanner(System.in);
    
       System.out.println("정수를 입력하시오.> ");
       int x = sc.nextInt();
    
       boolean result = (x > 0) && ((x % 2) == 0);
    
       System.out.println("x가 양수이면서 짝수입니까?> "+result);
       //결과값: 정수를 입력하시오.> 
       //        5
       //        x가 양수이면서 짝수입니까?> false
    }
    
    
    
    //OR 연산자(||)
    //  -> 피연산자 중 어느 한 쪽만 true이면 최종 결과도 true가 된다.
    public void method2() {
        Scanner sc = new Scanner(System.in);
        System.out.println("성별을 입력하시오.> ");
        char sex = sc.nextLine().charAt(0);
        boolean result - (sex == 'F') || (sex == 'f');
        
        System.out.println("그대는 여자입니까?>"+result);
        //결과값: 성별을 입력하시오.>
        //        Female
        //        그대는 여자입니까?> true
    }
}

       

    a-2. 논리 연산자의 연산결과

 

 

         - AND 연산자(&&)

           : true && true => true

            true && false => false

            false && false => false

            false && true => false

         - OR 연산자(||)

           : true || true => true

            true || false => true

            false || false => true

            false || true => true

 

    b. 논리 부정 연산자

       : 논리값(true / false)을 반대로 바꿔주는 연산자

 

      b-1. 표현법: !논리값

public class Logic {
    public void logic1() {
        System.out.println("true의 부정> "+!true);    //true의 부정> false
        System.out.println("false의 부정> "+!false);   //false의 부정> true
        
        boolean b1 = true;
        boolean b2 = !b1;
        
        System.out.println("b1 = "+b1);    //b1 = true
        System.out.println("b2 = "+b2);    //b2 = false
    }
}

 

  ④ 대입 연산자: 오른쪽 변의 값을 왼쪽 변에 저장( = )

    a. 대입 연산자

      : 오른쪽 피연산자의 값을 왼쪽 피연산자에 저장하는 데 사용,

       연산 진행 방향이 오른쪽에서 왼쪽이므로 'x = y = 5;'에서 'y =5'가 먼저 수행되고 'x = y'가 수행된다.

 

    b. 복합 대입 연산자

      : 다른 산술 연산자(op)와 대입 연산자가 결합한 것,

       자기 자신과 해당 산술 연산 후에 그 결과를 자기 자신에게 덮어 씌움

      b-1. 종류

op= =
i += 3; i = i + 3;
i -= 3; i = i - 3;
i *= 3; i = i * 3;
i /= 3; i = i / 3;
i %= 3; i = i % 3;

위 표의 왼쪽은 복합 연산자의 예이고 오른쪽은 대입 연산자의 예이며, 둘은 같은 의미를 가진다. 처음엔 복합 대입 연산자가 익숙하지 않을 수 있기 때문에 표의 오른쪽 형식을 보면서 익히면 된다.

 

public class Compound {
	public void method1() {
		
		int num = 12;
		
		System.out.println("현재 num: "+num);  //12
		
		//num을 3만큼 증가
		num = num + 3;
		System.out.println("3을 증가시킨 num: "+num);  //15
		
		//num을 3만큼 증가(복합 대입 연산자)
		num += 3;
		System.out.println("3을 증가시킨 num: "+num);  //18
		
		//num을 3만큼 감소
		num -= 3;
		System.out.println("3만큼 감소시킨 num: "+num);  //15
		
		//num을 3배 증가
		num *= 3;
		System.out.println("3배 증가시킨 num: "+num);  //45
		
		//num을 2로 나눈 나머지
		num %= 2;
		System.out.println("num을 2로 나눈 나머지: "+num);  //1
	}
}

 

  ⑤ 증감 연산자

     : 단항 연산자로써 한 번에 1씩 증감시키는 연산자

    a. 표현법

      a-1. ++: 값을 1씩 증가

            --: 값을 1씩 감소

 

    b. 연산자의 위치

      b-1. 전위연산: ++i, --i

            → 1을 먼저 증감시키고 i를 처리

 

      b-2. 후위연산: i++. i--

            → i를 먼저 처리하고 타 연산자 실행 후 1을 증감

public class minus {

    //전위연산
	public void plus() {
        int a = 10;
		int b = ++a;   
        //a에 1 증가 => 11, b는 1이 증가된 a의 값 11로 출력
		
		System.out.println("a = "+a);  //a = 11
		System.out.println("b = "+b);  //b = 11
		
		System.out.println("a: "+ --a); //10
        //a에 1 감소 => 10
    }
    
    
    //후위연산
    	public void xorr() {
		int a = 10;
		int b = a++; 
        //b가 먼저 10으로 출력되고, a는 a 값에 1 증가 => 11
		
		System.out.println("a = "+a);  //a = 11
		System.out.println("b = "+b);  //b = 10		
	}
}

 

 

 

3. 삼항 연산자

  : 조건식의 결과값에 따라 처리하는 연산자, 결과값이 참일 경우 식1을, 거짓일 경우 식2를 처리

 (1) 표현법

     조건식 ? 조건이 true일 경우의 처리 : false일 경우의 처리

public class triple {
	public void three() {
    
		//짝수인지 홀수인지 판별해보기
		Scanner sc = new Scanner(System.in);
		
		System.out.println("정수를 입력하시오.> ");
		
		int num = sc.nextInt();
		
		System.out.println("결과는 "+((num%2 == 0) ? "짝수입니다." : "홀수입니다."));
        //num에 입력한 값의 2로 나눈 후 나머지값이 0이면 짝수, 0이 아니면 홀수
	}
}
반응형