Loops FOR循环的循环测试部分中的函数是否在每次迭代时都被调用?
如果函数是FOR循环中循环测试的一部分,那么该函数是在循环的每次迭代中调用的,还是仅在第一次迭代中调用以设置循环 e、 g 在循环之前定义一个值为字符串长度的变量是否更好 e、 gLoops FOR循环的循环测试部分中的函数是否在每次迭代时都被调用?,loops,for-loop,Loops,For Loop,如果函数是FOR循环中循环测试的一部分,那么该函数是在循环的每次迭代中调用的,还是仅在第一次迭代中调用以设置循环 e、 g 在循环之前定义一个值为字符串长度的变量是否更好 e、 g 是的,for循环中的条件在每次迭代时都会被检查。如果您在那里调用的函数非常昂贵,那么您肯定应该将该值存储在变量中。但是,如果您有一个短循环,它实际上不会有什么区别。这取决于语言,测试中是否有方法调用,以及编译器是否能够确定方法调用是否不会改变每次迭代 例如,在某些情况下,VB.NET计算一次,c每次计算一次 最近有一
是的,for循环中的条件在每次迭代时都会被检查。如果您在那里调用的函数非常昂贵,那么您肯定应该将该值存储在变量中。但是,如果您有一个短循环,它实际上不会有什么区别。这取决于语言,测试中是否有方法调用,以及编译器是否能够确定方法调用是否不会改变每次迭代 例如,在某些情况下,VB.NET计算一次,c每次计算一次
最近有一个SO问题说明了这一点:问问你自己,如果用函数调用替换测试表达式,它是否会进行评估:对于int i=0;isDonei;i++{…}我想你知道答案,所以我想你知道你问题的答案
for (i = 0; i < strlen(someString); i++) {
// Do Something
}
int length = strlen(someString);
for (i = 0; i < length; i++) {
// Do Something
}