Can nested 'for' loops use the same name for their counter variables?

  • A+

Can I use the same counter variable name for an inner for loop as for the outer for loop? Or will the variables affect each other?

For example, should the following code use a different variable name for the second loop, such as j, or is i fine?

for(int i = 0; i < 10; i++) {   for(int i = 0; i < 10; i++)   {   } } 


You may use the same name (identifier). It will be a different object. They will not affect each other. Inside the inner loop, there is no way to refer to the object used in the outer loop (unless you make special provisions for that, as by providing a pointer to it).

This is generally bad style, is prone to confusion, and should be avoided.

The objects are different only if the inner one is defined separately, as with the int i you have shown. If the same name is used without defining a new object, the loops will use the same object and will interfere with each other.


:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: