Sunday, July 29, 2018

java - Difference between declaring variables before or in loop?



I have always wondered if, in general, declaring a throw-away variable before a loop, as opposed to repeatedly inside the loop, makes any (performance) difference?
A (quite pointless) example in Java:



a) declaration before loop:




double intermediateResult;
for(int i=0; i < 1000; i++){
intermediateResult = i;
System.out.println(intermediateResult);
}


b) declaration (repeatedly) inside loop:



for(int i=0; i < 1000; i++){

double intermediateResult = i;
System.out.println(intermediateResult);
}


Which one is better, a or b?



I suspect that repeated variable declaration (example b) creates more overhead in theory, but that compilers are smart enough so that it doesn't matter. Example b has the advantage of being more compact and limiting the scope of the variable to where it is used. Still, I tend to code according example a.



Edit: I am especially interested in the Java case.



Answer



Which is better, a or b?



From a performance perspective, you'd have to measure it. (And in my opinion, if you can measure a difference, the compiler isn't very good).



From a maintenance perspective, b is better. Declare and initialize variables in the same place, in the narrowest scope possible. Don't leave a gaping hole between the declaration and the initialization, and don't pollute namespaces you don't need to.


No comments:

Post a Comment

plot explanation - Why did Peaches&#39; mom hang on the tree? - Movies &amp; TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...