나를 기록하다
article thumbnail
반응형

6.1 조건 연산자 ? :

  • 조건식 ? 식1 : 식2
    조건식이 참일 경우 → 식1 / 조건식이 거짓일 경우 → 식2

  • 조건 연산자도 식1과 식2, 이 두 피연산자의 타입이 다른 경우, 이항 연산자처럼 산술 변환이 발생한다

 

6.1.1 [예제] 조건 연산자에서의 산술 변환

  •    x = x + (mod < 0.5 ? 0 : 0.5) 0과 0.5의 타입이 다름
    →x = x + (mod < 0.5 ? 0.0 : 0.5) 0이 0.0으로 변환

 

6.1.2 [예제] 조건 연산자를 활용한 절댓값 구하기

public class _20_ConditionOperator {
    public static void main(String[] args) {
        int x, y, z;
        int absX, absY, absZ;
        char signX, signY, signZ;

        x = 10;
        y = -5;
        z = 0;

        absX = x >= 0 ? x : -x;
        absY = y >= 0 ? y : -y;
        absZ = z >= 0 ? z : -z;

        signX = x > 0 ? '+' : (x==0 ? ' ' : '-');
        signY = y > 0 ? '+' : (y==0 ? ' ' : '-');
        signZ = z > 0 ? '+' : (z==0 ? ' ' : '-');

        System.out.printf("x=%c%d%n", signX, absX);
        System.out.printf("y=%c%d%n", signY, absY);
        System.out.printf("z=%c%d%n", signZ, absZ);
    }
}
// 결과
x=+10
y=-5
z= 0

 

6.2 대입 연산자 = op=

6.2.1 lvalue(left value)와 rvalue(right value)

  1. rvalue : 변수뿐만 아니라 식이나 상수 등이 모두 가능
  2. lvalue : 반드시 변수처럼 값을 변경할 수 있는 것이어야 함 → 리터럴이나 상수같이 값을 저장할 수 없는 것들은 불가능
  • 변수 앞에 키워드 final을 붙이면 상수가 된다. ex) final int Max = 3;
  • 상수에는 새로운 값을 저장할 수 없다. ex) Max = 10; // 에러!

 

6.2.2 복합 대입 연산자

  • 대입 연산자는 다른 연산자(op)와 결합하여 ‘op=’와 같은 방식으로 사용될 수 있다. 예를 들면, ‘i = i + 3’은 ‘i += 3’과 같이 표현 가능
  • 복합 대입 연산자의 종류
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;
i <<= 3; i = i << 3;
i >>= 3; i = i >> 3;
i &= 3; i = i & 3;
i ^= 3; i = i ^ 3;
i = 3;
i *= 10 + j; i = i * (10 + j);

 

반응형
profile

나를 기록하다

@prao

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

profile on loading

Loading...