【发布时间】:2018-03-20 03:51:16
【问题描述】:
使用嵌套的 for 循环,例如:
for (int i=0; i<N; i++)
for (int j=0; j<N; j++)
这样做更好吗:
for (int i=0, j; i<N; i++) //Declare them both at once
for (j=0; j<N; j++)
因为一遍又一遍地声明 j 会在堆栈上创建空间并重复丢弃?适用于小型和大型程序。
【问题讨论】:
-
是和否。是的,第二个稍微好一点 - 但是 - Java 编译器非常有能力以一种有意义的方式重新排序声明(实际上,它们是相同的)。
-
JavaScript 没有
int类型,如果您使用var,它没有块分数,因此不会真正多次声明变量。 -
使用
let和const你不能重新声明变量 -
P.S.如果您担心性能,您可以随时测试相对性能,例如对于 JS 尝试jsperf.com。 @SterlingArcher - OP 意味着在内部循环中声明变量将在外部循环的每次迭代中重新创建它,而不是在同一范围内声明具有该名称的其他变量。
-
也许您可以删除您不感兴趣的语言的标签。
标签: javascript java php for-loop declare