double a = 95.6;
byte b = (a>90.1) ? 4 : 3;
println(b);

이거 왜 오류임???

4랑 3은 byte 범위 안에 있지 않음??




사실 
byte x = 1;
byte y = 2;
byte z = x + y;
println(z); 이런 경우라면  계산할 때 자동으로 int + int로 변환되기 때문에 byte는 int를 담을 수 없어서 오류가 날 텐데,


byte k = 1 + 4; 
println(k)  
이렇게 숫자 + 숫자인 경우는 오류가 안 나잖아...


그렇기 때문에 맨 위의 예시인
byte b = (a>90.1) ? 4 : 3; 이 식의 경우도 전부 한 줄 안에 있으니 int와 int로 타입변환이 안 되고 바로 계산되어야 하는 게 아닌가 싶었는데
오류가 나길래 ㅠㅠ 이거 친절하게 설명해줄 프갤형님 있으면 저 좀 이해시켜주삼 ㅠㅠ