은 그래서 저는 i=56*57
3192 나에게 제공하지만 내 프로그램이 값은 2162이다라고하는 i=i*++i
으로 이것을 계산하려고 :연산자 우선 순위
class Demo {
public static void main(String args[]) {
short i=056;
i*=++i;
System.out.println(i);
}
}
은 그래서 저는 i=56*57
3192 나에게 제공하지만 내 프로그램이 값은 2162이다라고하는 i=i*++i
으로 이것을 계산하려고 :연산자 우선 순위
class Demo {
public static void main(String args[]) {
short i=056;
i*=++i;
System.out.println(i);
}
}
문제는 곱셈 전에 - 그것은 여기 :
short i=056;
그건 8 진수 리터럴이며 십진수 값은 46입니다. 실제로 46 * 47의 결과를 얻게됩니다. 실제로는 2162.
나는 을 강력하게라고 말하면 i *= ++i
과 같은 코드를 사용하지 말 것을 권합니다. 모든 사람이 i *= i + 1
을 사용하는 것이 더 간단합니다. 또한 8 진 리터럴을 사용하지 말 것을 권합니다.
8 진 리터럴을 사용하지 말 것을 강력히 권고합니다! – Gabe
@Gabe : 약 30 초 전 :) –
관심있는 내용 -'i = i * ++ i' 또는'i * = ++ i'? –
'056'에서 앞에 오는'0'을 제거하면, 뭔가 빠진 답을 알게 될 것입니다. –