/ JAVAJUNGSUK

Ch3-17~19. 조건 연산자

자바의 정석 기초편

0. 목차



Chapter3. 연산자

Ch3 - 17. 조건 연산자 ? :

Ch3 - 18. 대입 연산자 =

Ch3 - 19. 복합 대입 연산자 +=



Ch3 - 17. 조건 연산자 ? :


▶ 조건 연산자란?

▷ 피연산자가 3개
조건식의 결과에 따라 연산결과를 달리함


  • 조건식 결과 = true 일 때
      int x = 5, y = 3;
        
      boolean b = x > y;
      int result = (x > y) ? x : y;
        
      System.out.println(b);
      System.out.println(result);
        
      // console
      true
      5   // 조건식이 true일 때, 결과값은 x
    
  • 조건식 결과 = false 일 때
    int x = 3, y = 5;
              
    boolean b = x > y;
    int result = (x > y) ? x : y;
      
    System.out.println(b);
    System.out.println(result);
      
    // console
    false
    5   // 조건식이 flase일 때, 결과값은 y
    
  • result = (x > y) ? x : y;if문으로 작성하면?
    if (x >  y)
      result = x;
    else {
      result = y;
    }   // if문은 길다
    

    간단한 if문은 삼항 연산자로!



Ch3 - 18. 대입 연산자 =


▶ 대입 연산자란?

▷ 오른쪽 피연산자를 왼쪽 피연산자에 저장 후 저장된 값을 반환
▷ 모든 연산자는 결과값을 반환
▷ 연산방향 : ←


▶ lvalue와 rvalue

▷ lvalue : 대입 연산자의 왼쪽 피연산자


  • lvalue는 저장공간
    변수, 배열… 저장공간만 lvalue가 될 수 있음

  • lvalue가 저장공간이 아닐 시 에러발생
    상수, 정수… 저장공간이 아닌 lvalue는 모두 에러

    int i = 0;
      
    3 = i + 3;  // 에러, 3 ≠ 저장공간
    i + 3 = i;  // 에러, i + 3 = 0 + 3 = 3 ≠ 저장공간
      
    final int MAX = 3;  // 변수 앞 final = 상수 ≠ 저장공간
    MAX = 10; // 에러, MAX = 상수 ≠ 저장공간
    
▷ rvalue : 대입 연산자의 오른쪽 피연산자




Ch3 - 18. 복합 대입 연산자 +=


▶ 복합 대입 연산자란?

▷ 대입 연산자와 다른 연산자를 하나로 축약

▶ 예시

▷ 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;
▷ 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;
▷ i *= 10 + 3;
  • 피연산자가 2개인 경우 괄호 쳐 주기!
  • i = i * (10 + 3);