'for loop'是一个函数吗?



'for loop'是一个函数吗?如果没有,那是什么?它是如何工作的?

C 中的示例:

for(int i=0; i<32; i++)
{
    ...
}

Python 中的示例:

for i in range(0, 32):
    print "..."

不,整个事情被称为"迭代语句"。包含 for 关键字的那个称为for语句。

引用C11,第6.8章,

语句指定要执行的操作。[...]

以及从 §6.8.5 开始

迭代语句:

while ( expression ) statement
do statement while ( expression ) ;
for ( expressionopt ; expressionopt ; expressionopt ) statement
for ( declaration expressionopt ; expressionopt ) statement

基本上,任何具有可迭代方法的对象都可以 在 Python 中的 for 循环中使用。偶数字符串,尽管没有 可迭代的方法 - 但我们不会在这里继续讨论。有一个 可迭代方法基本上意味着数据可以在列表中呈现 表单,其中以有序的方式存在多个值。您可以 通过使用 next(( 和 iter(( 创建对象来定义自己的可迭代对象 方法。

您可以从For loop Python wiki查看更多详细信息。

不,for循环是 c 和 c++ 中的迭代条件语句

C 书 n12566.8.5.3 段 for 语句

声明

对于 ( 条款-1 ; 表达式-2 ; 表达式-3 (

陈述行为如下:表达式表达式-2 是控制在每次执行循环体之前计算的表达式。表达式表达式 -3 在之后被计算为空表达式循环体的每次执行。如果条款 1 是声明,则它声明的任何标识符的范围是声明和整个循环,包括其他两个表达式;它是在第一次评估之前按照执行顺序达到的控制表达式。如果子句 1 是一个表达式,则它是在第一次评估之前评估为空表达式控制表达式。

for 循环

不是一个函数;相反,它是一个具有条件标头的迭代语句(例如:计数器"i"不应大于或小于任何数字 n,而 i 每次循环迭代都会递增某个数字(。不应将条件标头视为 for 循环的参数。for-loop还有一个用大括号括起来的代码体(这里仅指C语言(。

函数和 for 循环之间的区别在 C 语言中应该是显而易见的:

    一个函数只在另一个函数中
  • 调用;它不能在另一个函数中定义。因此,for-loop不能是一个函数,因为它的代码定义了在它正在实现的函数中找到的大括号。

所以我们不能有这样的东西:

 int main()
 {
    void AnyFunction() // cannot define a function inside another function. It can only be called
    {
        printf("Hello");
    }
}

但是我们可以有这样的东西:

int main()
{
    for (int i = 0; i < 5; i++) // If this is a function, how can we define it inside another function?
    {
        printf("Hello");
    }
}

希望这有帮助。

如果你下降到汇编程序级别和基本的CPU指令,什么是函数?函数只是一些被JMP(跳转(指令包围的代码块。因此,指令指针(当前正在执行的指令(从程序中的某个其他位置跳到函数的开头,执行其代码,然后跳转到其他地方。

从这个意义上说,循环绝对是一个函数。唯一略有不同的是,它通常会跳转到自己的开始检查某些条件并再次执行自己,而不是跳转到其他地方(通常是其调用的位置(。

是的,在更高的抽象级别上,它与函数有很大不同,但在基本级别上它是函数。您可以将其视为另一个函数中的函数。因此,您应该始终将循环视为函数中的"自治岛"。

for 是一个

关键字,range 是一个函数,它将值范围作为参数来操作循环主体。