更新时间:2024-10-11 21:38
1.语句最简形式为:
for( ; ; )
2.一般形式为:
{
中间循环体;
}
for ( init; condition; increment ){ statement(s);}
其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。
for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。
执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
3.for循环流程图
执行过程为:
求解表达式1;
求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步;
求解表达式3;
转回上面第2步继续执行;
循环结束,执行 for 语句下面的语句。
执行过程中,“表达式1”只执行一次,循环是在“表达式2”“表达式3”和“内嵌语句”之间进行的。
(1)三角基本模型:
示例:
(2)中间循环体被省略,只剩下“;”空语句时的左右往返模型:
条件表达式——末尾循环体
示例:
(3)末尾循环体被省略后的上下往返模型条件表达式——中间循环体
示例:
(4)条件表达式被省略得只剩下“;”空语句时,中间循环体或末尾循环体带有跳出语句时的模型:
示例:
(3)注意事项
1.for循环中的变量可以是一个也可以是多个。
1. for循环可以有多层嵌套。示例:
输出结果为: i j k 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
2. for循环中的变量生存周期为一次循环迭代。
C语句中变量必须声明在前才能使用,在定义语句之前使用变量是不合法的。
一、循环的结构不同
for循环的表达式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}
while循环的表达式为:while(表达式){循环体}
二、执行条件的判断方式不同
for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环(遇到不满足的条件就立刻退出)。
while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出,而不是立即跳出循环(计算条件不满足时,也仍会执行完当前循环)。
三、语法不同
for循环的语法为:for (变量 = 开始值;变量 <= 结束值;变量 = 变量 + 步进值) {需执行的代码 }。
while循环的语法为:while (<条件>) {需执行的代码 }。
不同语言的用法比较(Python、Java、C):
前述的用法主要是从C语言出发的,Java与Python中的 for 循环与 C 语言中的 for 循环在语法上非常相似,但在某些方面有一些细微的差别:
1. 初始化变量的作用域:
在C语言中,初始化的变量在整个函数范围内可见,而在 Java与Python中,初始化的变量仅在 for 循环内可见。这意味着在这两种语言中,不能在 for 循环外部访问初始化的变量。
2. 变量类型推断:
在 Java 10 及更高版本中,可以使用局部变量类型推断来声明 for 循环中的初始化变量,而在 C 中,必须显式地声明变量的类型。在Python中,可以不声明变量类型,使用默认变量类型,也可以声明特殊类型变量。
3. 遍历方式:
在 Python 中,for 循环通常用于迭代遍历集合类型(如列表、元组、字典等)的元素。Python 的 for 循环是一种迭代器形式,可以直接遍历集合中的元素。而在 Java 中,传统的 for 循环更常用于指定循环的次数,并且需要通过索引来访问数组或列表中的元素。但是,Java 也有类似于 Python 的 for-each 循环,可以更简洁地遍历集合类型。C语言使用的是传统的遍历,需要使用到索引变量。
4. 语法:
在 Python 中,for 循环的语法非常简洁,通常是通过 for item in iterable: 的形式进行迭代。在 Java和C语言中,传统的 for 循环具有明确的初始化、条件和迭代部分,通常采用 for (initialization; condition; iteration) 的形式。
Python、Java 和 C 中的 for 循环示例比较:
在 Python 中:
在 Java 中:
在 C 中:
尽管 Python、Java 和 C 中的 for 循环都可以用于迭代,但它们在语法和用法上有一些区别,主要取决于编程语言的设计和用途。