java - Is it ok to use increment operators with any primitive type? -
we know int++
increase variable value 1, say:
int number = 0; int temp = number + 1; number = temp;
this allowed other primitive types too:
double number = 0d; number++;
so, wondering if code above executed as:
double number = 0d; double temp = number + 1d; number = temp;
or:
double number = 0d; int temp = number + 1; number = temp;
in second case, should prefer double += 1d
instead?
the ++
(prefix or postfix) not works on int
, if use other primitive types, not mean there intermediate conversion int
, back.
see java language specification:
as jls says, binary numeric promotion applied variable , value 1
. in case of number++
number
double
, means 1
treated double
.
so, number++
works same number += 1d
if number
double
. not necessary number += 1d
explicitly.
note: if there intermediate conversion int
, back, suggest in question, expect that:
double number = 0.5; number++;
would result in number
being 1.0
instead of 1.5
, because conversion throw decimals away. but, can see, not case.
Comments
Post a Comment