복합 할당 연산 자+=도대체 어떻게 연산 합 니까?
1460 단어 자바
short s1 = 1;
s1 = s1 + 1;
무슨 잘못 이 있 습 니까?
short s1 = 1;
s1 +=1;
무슨 잘못 이 있 습 니까?
이 문 제 는 어떻게 보면 이 두 단락 의 코드 는 별 차이 가 없 는 것 같 지만,그들의 집행 결 과 는 다르다.
결 과 는 첫 번 째 코드 가 틀 릴 수 있 고 두 번 째 코드 는 틀 리 지 않 습 니 다.
첫 번 째 코드 에 대한 분석:
이 코드 의 두 번 째 문장(s1=s1+1)은 간단 한 두 숫자 를 더 한 결과 첫 번 째 변수 에 값 을 부여 합 니 다.
이때 연산 결과 의 데이터 형식 은 다음 과 같은 규칙 에 의 해 순서대로 결정 된다.
1,가산 에 참여 하 는 표현 식 이나 숫자 에 double 형식 이 있다 면 결 과 는 double 형식 입 니 다.
2,가산 에 참여 하 는 표현 식 이나 숫자 에 float 형식 이 있 으 면 결 과 는 float 형식 입 니 다.
3,가산 에 참여 하 는 표현 식 이나 숫자 에 long 형식 이 있 으 면 결 과 는 long 형식 입 니 다.
4.가산 에 참여 하 는 표현 식 이나 숫자 가 3 이상 의 데이터 형식 이 없 으 면 결 과 는 일률적으로 int 형식 입 니 다.
이 규칙 에 따라 s1=s1+1;그러면 최종 연산 결 과 는 int 여야 하기 때문에 short 형식의 s1 에 값 을 부여 하 는 데 오류 가 발생 할 수 있 습 니 다.
두 번 째 코드 에 대한 분석:
num 1+=num 2 와 같은 형식의 복합 할당 표현 식 은 실제(num 1 의 유형)(num1+num 2)과 같 습 니 다.즉,두 개의 수 를 더 한 결 과 를 할당 연산 자 왼쪽 연산 자의 데이터 형식 으로 강제 전환 하 는 것 입 니 다.유일한 차이 점 은 num 1 이 한 번 만 계산 하기 때문에 이론 적 으로 복합 할당 연산 자의 효율 이 더욱 높다 는 것 이다.
s1+=1;s1=(short)(s1+1)과 같 습 니 다.그 러 니까 결 과 는 괜찮아.
여러분,이 규칙 을 아 셨 나 요?다음 두 단락 의 코드 를 보십시오.당신 은 정 답 을 정확하게 말 할 수 있 습 니까?
아래 코드 는 어떤 값 을 출력 합 니까?
short x = 3;
x += 4.6;
System.out.print(x);
아래 코드 가 틀 렸 습 니까?
int i = 5;
long j = 8;
i = i + j;
i += j;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.