在编写循环时,我经常会困惑应该选择哪种循环。例如,
int sum;
for(int i=0; i<10; i++)
{
sum=0;
...
....
}
或者
for(int i=0; i<10; i++)
{
int sum=0;
...
....
}
假设这个变量只在循环中使用,在程序的后续部分不需要它。我需要这个变量sum在循环开始时的值为0。
哪种方式更好?重新初始化循环开始时的变量还是重新声明?哪种方式更有效率?
在编写循环时,我经常会困惑应该选择哪种循环。例如,
int sum;
for(int i=0; i<10; i++)
{
sum=0;
...
....
}
或者
for(int i=0; i<10; i++)
{
int sum=0;
...
....
}
假设这个变量只在循环中使用,在程序的后续部分不需要它。我需要这个变量sum在循环开始时的值为0。
哪种方式更好?重新初始化循环开始时的变量还是重新声明?哪种方式更有效率?
int sum;
for(int i=0; i<10; i++)
{
sum=0;
}
编译后,这个变成了:
for(int i = 0; i < 10; i++)
{
int sum = 0;
}
性能和优化
上。最小的范围
内声明和初始化变量。不要在声明
和初始化
之间留下巨大的空白。局部变量的作用域应始终尽可能小。参见链接
在循环内重新初始化它将会在每次开始循环时将总和值设置为零,无需重新声明。答案是两者效率相同。
sum
的范围对于此讨论是无关紧要的,因为在任一情况下它都是局部变量,并且未显示需要后续使用。 (尽管我鼓励使用可能的最严格作用域。) - user2864740