Java 4.연산자들

업데이트:
3 분 소요

1. 항과 연산자

  • 항 (operand) : 연산에 사용되는 값

  • 연산자 (operator) : 항을 이용하여 연산하는 기호

2. 대입 연산자 (assingnment operator)

  • 변수에 변수나 값을 대입하는 연산자

  • 이항 연산자 중 우선순위가 가장 낮은 연산자
  • 왼쪽 변수 = 오른쪽 변수(or 식, 값)

3. 부호 연산자

  • 단항 연산자

  • 변수의 부호를 유지하거나(+) 바꿈(-)

        +           +x      부호 유지(의미없는 연산)
        -           -x      부호 반전
  • 실제 변수의 부호가 변하려면 대입 연산자를 사용해야 함.

4. 산술 연산자

사칙 연산자

        +
        -
        *           곱하기
        /           나누기의 
        %           나누기의 나머지

5. 복합 대입 연산자

  • 대입연산자와 다른 연산자가 함께 사용
       a += b       a = a + b
       a -= b       a = a - b
       a *= b       a = a * b
       a /= b       a = a / b
       a %= b       a = a % b
public class AssignOperatorTest {

	public static void main(String[] args) {
		int result =0;
		
		result +=10;							//result = result +10;
		System.out.println("result : " + result);
		
		result -=5;								//result = result -5;
		System.out.println("result : "+result);
		
		result *=5;								//result = result*5;
		System.out.println("result : "+result);
		
		result /=5;								//result = result/5;
		System.out.println("result : "+result);
		
		result %=5;								//result = result%5;
		System.out.println("result : "+result);
	}

}

6. 증가, 감소 연산자

  • 증감연산자는 변수의 값을 1증가시키거나 1감소시킬 때 사용.
       ++           ++x             다른연산 전 x값을 증가시킴
                    x++             다른연산 후 x값을 증가시킴

       --           --x             다른연산 전 x값을 감소시킴
                    x--             다른연산 후 x값을 감소시킴            

7. 비교 연산자 ( 관계 연산자 )

  • 두 피연산자를 비교해 결과값으로 논리 값인 true나 false를 반환해줌.
    int x = 2;
    int y = 1;
       ==           x==y        x와 y는 같다.       false                    
       !=           x !=y       x와 y는 같지 않다.  true
       >                                           true
       >=                                          true 
       <                                           false
       <=                                          false

8. 논리 연산자

  • 관계연산자와 혼합하여 많이 사용 됨

  • 연산의 결과가 true, false으로 반환 됨

연산자

    && ( 논리곱, And )      두 항이 모두 참이면 결과값이 참 그렇지 않으면 다 거짓

    || ( 논리합, Or  )      두 항중에 하나의 항이라도 참이면 결과값은 참 
                                두 항이 모두 거짓이면 결과값은 거짓

    !  ( 부정, Not   )      값이 참인 경우는 거짓으로 바꿈 값이 거짓인 경우 참으로 바꿈
public class ShortCircuitEvaluation {

	public static void main(String[] args) {
		
		int x =0;
		int y =0;
		boolean result;
		
		result = ((x= x + 1)< 0 ) && ((y = y + 1) > 0);
		System.out.println("result = " + result);
		System.out.println("x= "+x);
		System.out.println("y= "+y);
		
		result = ((x= x+1)>0) || ((y=y+1)>0);
		System.out.println("result = " + result);
		System.out.println("x= "+x);
		System.out.println("y= "+y);
	}

}

논리연산 진리표

        A              B                    A && B              A || B          !A
    ---------------------------------------------------------------------------------

        true         true                     true                true          false
        true         false                   false                true          false
        false        true                    false                true          true
        false        false                   false                false         true   
    ---------------------------------------------------------------------------------
  • 두 명제가 모두 참이면 논리곱은 참
       두 명제중 하나라도 참이면 논리곱은 참
       참의 부정은 거짓, 거짓의 부정은 참
  • 논리 연산에서 모든 항이 실행되지 않는 경우 - short circuit evaluation (SCE)
    - 최단 거리 평가
    - 연산의 효율 및 속도 향상을 위해 불필요한 연산을 수행하지 않는 기능
    - 논리곱
        - 둘다 참이어야 참 => 앞쪽이 거짓이면 뒤쪽 계산을 수행하지 않음

    - 논리합
        - 둘중 하나라도 참이면 참 => 앞쪽이 참이면 뒤쪽 계산을 수행하지 않음

9. 조건 연산자

  • 삼항 연산자
  • 주어진 조건식이 참인 경우와 거짓인 경우에 다른 결과값을 나타내주는 연산자
    - 조건식의 결과가 true인 경우와 false인 경우에 따라서 다른 결과가 수행됨
  • 조건식 ? 참일 때 실행 : 거짓일 때 실행 ;
       조건식 ?   결과 1     :      결과 2  ;
       => 조건식이 참이면 결과1 조건식이 거짓이면 결과2가 선택됨    

10. 단항, 이항, 삼항 연산자가

  • 연산자를 항 개수로 구분
  • 단항연산자 : 하나의 피연산자만으로 이루어진 식으로 연산 수행.
                    ++x, y--
  • 이항연산자 : 피연산자를 두 개 가지고 식을 구성함
  • 삼항연산자 : 항이 세개 있어야 함
public class ConditionTest2 {
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("정수를 입력하세요 : ");
		int score = scanner.nextInt();
		
		char grade = (score>= 90) ? 'A' : 'B';
		System.out.println("당신의 점수등급은 : "+grade);
		
		
		//삼항연산자 중첩
		grade = (score >= 90) ? 'A' : ((score >=80) ? 'B' : 'C');
		System.out.println("당신의 점수등급은 : "+grade);
	
				
		scanner.close();
	}
}

11. 연산자 우선순위

                우선순위            종류            연산자
            --------------------------------------------------                    

                    1                              . []   () 
                    2               단항            ++ -- ! + -
                    3               산술            *   /  %
                    4               산술            +   -
                    5               비교            < <= > >=
                    6               관계            ==  !=
                    7               논리곱          &&
                    8               논리합          ||
                    9               조건            ? : 
                    10              대입            = += -= /= %=
            ---------------------------------------------------

댓글남기기