在良好的编程设计,速度,效率和内存观点方面,以下哪两个更好?
1)
for(int i=0;i<10;i++)
{
...
}
2)
int i;
...
...
for(i=0;i<10;i++)
{
...
}
我的意思是,如果程序中有很多这样的(或者可能是不同的)循环,那么应该使用哪一个?
答案 0 :(得分:4)
绝对是第一个。
引自Java docs:
如果在循环之外不需要控制for语句的变量,那么最好在初始化表达式中声明变量。
在Java 8中,您也可以这样做:
IntStream.rangeClosed(1, 10).forEach(System.out::println);
答案 1 :(得分:1)
(这是针对Java的) 如果要在循环之后/之前访问它,请在循环外使用“int”关键字。但是如果你在外面使用它,我建议使用“while”循环,并每次向int添加一个。您不需要将int变量赋值为0,因为int不能为null,默认情况下为0。
int i;
...
...
...
while (i < ***){
...
i++;
}
第二个变体仅在发生某些事情时断开循环才有用,因此您可以获得稍后发生的迭代次数。
答案 2 :(得分:1)
如果您不需要在循环外访问i
,它应该在循环内。如果你将它放在循环中,它会在控件退出循环时被销毁,从而节省内存。将i
放在循环中也会使代码更具可读性。
答案 3 :(得分:1)
如果你想在使用之后再次使用i,就像下面的代码一样,那么请选择第二个。
int i;
for (i = 0; i < length; i++) {
...
}
}
if (i > 50) { /* your code */ }
但是,如果你在使用for之后不需要使用'i',那么为了内存使用和简单性,请使用第一个。
答案 4 :(得分:1)
两者都很糟糕,因为他们使用幻数10。:)
至于使用哪个循环,它取决于上下文:变量i
是否必须在循环外使用。
如果是,那么我会写
int i;
...
...
i = 0;
for ( ; i < 10; i++ )
{
...
}
答案 5 :(得分:1)
在良好的编程设计,速度,效率和内存观点方面,以下哪两个更好?
在Java中你可以使用两者,在C 之前的 ,你只能使用第二种方法。
关于你的问题:
良好的编程设计: 1更好,因为变量x
仅用于循环,因此将其封闭在循环范围内将是更好的设计
速度:两者都是相同的
效率:
记忆: 1更好,因为变量在循环中使用后很容易被丢弃。
用户Alter Mann提出了关于使用第二种方法的可移植性的一个很好的观点。
答案 6 :(得分:1)
在这种情况下......
注意: - 两个程序都没有性能问题...
但是,只有当我们可以讨论i
的范围时,如果除了i
之外没有loop
的要求而且如果不需要,那么第一个循环会更好,那么你应该将其声明为根据你的代码方式