Welcome to WebmasterWorld Guest from 54.162.91.86

Forum Moderators: open

Message Too Old, No Replies

Why is i++ different from i+1?

You're incrementing by one. I don't see the difference...

     
7:09 pm on Apr 9, 2009 (gmt 0)

New User

5+ Year Member

joined:Mar 26, 2009
posts: 24
votes: 0


I was playing with this example on W3 Schools...

[w3schools.com...]

and I noticed that if you change the i++ part of the script to i+2 or even i+1 it causes an infinite loop.

Why on Earth would that be?

7:12 pm on Apr 9, 2009 (gmt 0)

New User

5+ Year Member

joined:Mar 26, 2009
posts:24
votes: 0


Wait...
is it because you need to type i=i+1;
?
7:14 pm on Apr 9, 2009 (gmt 0)

New User

5+ Year Member

joined:Mar 26, 2009
posts:24
votes: 0


D'oh! Yes... I understand now. Sorry for the n00b question.
7:16 pm on Apr 9, 2009 (gmt 0)

Senior Member

WebmasterWorld Senior Member drdoc is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:Mar 15, 2002
posts:6807
votes: 0


i++
is short for
i = i + 1
, or
i += 1
. Simply saying
i + 1
does not actually increase the value of
i
.

for(i = 0; i < 5; i++) { 
document.write(i);
}
for(i = 0; i < 5; i+=1) {
document.write(i);
}
for(i = 0; i < 5; i+=2) {
document.write(i);
}

Those are all viable options.

7:27 pm on Apr 9, 2009 (gmt 0)

Preferred Member

5+ Year Member

joined:Aug 18, 2008
posts:408
votes: 0


If you need the next level of understanding how incrementing of variables works, you may be interested in this thread also:
complete newbie - increments [webmasterworld.com]
4:38 am on Apr 10, 2009 (gmt 0)

New User

5+ Year Member

joined:Mar 26, 2009
posts:24
votes: 0


Thank you both.

@astupidname: I browsed that thread (being a newbie I felt it was my duty) and I did learn something new! : Didn't realize you could do y=++x

10:42 pm on Apr 10, 2009 (gmt 0)

Junior Member

10+ Year Member

joined:June 17, 2003
posts: 160
votes: 0


Also notice that i++ can produce different results from what you get with i+=1. The i++ forces i to be numeric and then adds 1 to it; the i+=1 may, in some situations, think that i is a character string and tack a 1 on the end.
11:05 pm on Apr 10, 2009 (gmt 0)

Administrator

WebmasterWorld Administrator coopster is a WebmasterWorld Top Contributor of All Time 10+ Year Member

joined:July 31, 2003
posts:12547
votes: 2


Not to add confusion, but perhaps some enlightenment -- if you ever come across a single plus sign in front of a variable you are likely viewing an example of the unary [webmasterworld.com] operator.