programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# What does '+=' mean again?

Ranch Hand
Posts: 65
I can't remember.

Ranch Hand
Posts: 51
a += b;
means
a = a+b;

Ranch Hand
Posts: 7729

a += b;
means
a = a+b;

No it does not!

See

JLS 3 15.26.2

Lisa Beglaw
Ranch Hand
Posts: 65
Thanks for the link Barry, but that website isn't very beginner friendly.

I finally managed to find it in my class notes...

number = number + value
number += value

Exactly like Mahesh said.

Ranch Hand
Posts: 410
And be a bit careful because it is quite easy to write:

a=+2;

a+=2;

The former will assign the value of 2 to a, whilst the latter will increment it by 2.

Ranch Hand
Posts: 1149
9

a += b;
means
a = a+b;

Well... that's right most of the time.

With a=a+b, the 'a' expression gets evaluated twice, but with a+=b, it's evaluated only once.

For something like...

the difference is moot.

However, for something like...

lines 9a and 9b do two different things.

9a calculates the index into arr[] just once, and so is like...

But 9b is like...

Ranch Hand
Posts: 55
hi lisa ,
I had a problem with a similar problem of identifying the difference between the two.Maybe someone could shine some light on what is exactly happening here.And what the underlying difference is?
declare and instatiate two variables:

int i = 1;
char c = 'c';

c+=i; //this compiles

c=c+i; //this does not
although both expressions say the same thing ie, add int i to char c and then initialise c to that value,one works and the other doesn`t.I can`t think that it has anything to do with casting types(although I could be wrong)so it must be something to do with the difference between the + operator and the += operator and the way they produce the outcome.Perhaps someone could shine some light on that ?

Ranch Hand
Posts: 3061

Originally posted by Daniel .j.Hyslop:
hi lisa ,
I had a problem with a similar problem of identifying the difference between the two.Maybe someone could shine some light on what is exactly happening here.And what the underlying difference is?
declare and instatiate two variables:

int i = 1;
char c = 'c';

c+=i; //this compiles

c=c+i; //this does not
although both expressions say the same thing ie, add int i to char c and then initialise c to that value,one works and the other doesn`t.I can`t think that it has anything to do with casting types(although I could be wrong)so it must be something to do with the difference between the + operator and the += operator and the way they produce the outcome.Perhaps someone could shine some light on that ?

c += i;

contains an implicit class, so it is actually similar to

c = (char) (c + i);

So once again, the two statements given in the original post do NOT quite say the same thing.

Layne

 It runs on an internal combustion engine. This ad does not: The WEB SERVICES and JAX-RS Course https://coderanch.com/t/690789/WEB-SERVICES-JAX-RS