![零基础C语言学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/191/36710191/b_36710191.jpg)
5.10 for语句
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_46.jpg?sign=1739356293-1qEOmTaffuqMvcHGBaUg8xmF4C6YFjxU-0-fb054b3efba739f8a8a90314fb732073)
在C语言中,使用for语句也可以控制一个循环,并且在每次循环时修改循环变量。在循环语句中,for语句的应用最灵活,不仅适用于循环次数已经确定的情况,而且适用于循环次数不确定而只给出循环结束条件的情况。下面对for语句进行详细的介绍。
5.10.1 for语句的基本形式
for语句基本形式的语法格式如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_47.jpg?sign=1739356293-ZzjME60EMsm1bNmiipZA5T7EZrmkyHfk-0-1350f18d2fd4fbb58699ec4d2fdbceb1)
在for语句基本形式的语法格式中,for关键字后的小括号中包含3个用分号隔开的表达式,表达式1用于给循环变量赋初值,表达式2是循环条件,表达式3用于对循环变量进行变化操作。
for语句基本形式的流程图如图5.13所示。
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_48.jpg?sign=1739356293-9bqlWRCSbw9keqmF0bZa4c4Hhh3tQLJk-0-8a1bdfb2d331cd2b4e5514d1ba8c7618)
图5.13 for语句基本形式的流程图
(1)执行表达式1,即给循环变量赋初值;
(2)执行表达式2,即判断循环变量是否满足循环条件,如果循环变量满足循环条件,则执行循环体语句,并且执行步骤(3);如果循环变量不满足循环条件,则退出循环,并且执行步骤(5);
(3)执行表达式3,即对循环变量进行相应的变化操作;
(4)回到步骤(2)继续执行;
(5)循环结束,执行for语句下面的语句。
例如:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_49.jpg?sign=1739356293-NVMGXXEbjRwZEiK1gB5Rpx6TQyq2p0eL-0-c90089fd92a97867188196520e23016f)
在上述代码中,首先给循环变量i赋初值为1,然后判断循环条件i<100是否为真,如果为真,则执行循环体语句,否则跳出循环。因为i的初值为1,小于100,所以执行循环体语句。在每次循环后,将循环变量i进行加1操作,然后继续判断循环条件i<100是否为真,以此类推。
学习笔记
在使用for语句时,常常犯的错误是将for关键字后面的小括号中的表达式用逗号隔开。
5.10.2 for语句的变体
在for语句的基本形式中,for关键字后面的小括号中一般有3个表达式,但是在实际程序的编写过程中,这3个表达式可以根据情况省略。
1.在for语句中省略表达式1
在for语句中,表达式1的作用是给循环变量赋初值。如果省略表达式1,就需要在for语句之前给循环变量赋值。在for语句中省略表达式1的示例代码如下:for(;iNumber〈10;iNumber++)
学习笔记
在省略表达式1时,其后的分号不能省略。
2.在for语句中省略表达式2
在for语句中,如果省略表达式2,即不判断循环条件,则循环会无终止地进行下去,即默认表达式2始终为真。例如:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_50.jpg?sign=1739356293-TXPkprrGreHFn4RFFv7XQesFCWLokge3-0-423dfd3a96ead3986773142c07605a12)
在for语句中省略表达式2,相当于使用while语句,代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_51.jpg?sign=1739356293-8msVCOAwu5pLiN4nLnAMVVbmZeP9sdV6-0-343f20ba0c2f950a7eedce8b6a561a45)
3.在for语句中省略表达式3
在for语句中,表达式3也可以省略,但此时程序设计人员应该保证循环能正常结束,否则循环会无终止地进行下去。例如:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_52.jpg?sign=1739356293-I9MzY4S4E6d2rP8t7yOYsUZDPoFoHMw8-0-338c9ae75afc9f0d0e0fc38be0c6420b)
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_53.jpg?sign=1739356293-mozKlPtlckAlYr3Z7zDONMzJ7gpRQJnk-0-4bb137018f5370c3fbe2f8f245ab337d)
5.10.3 for语句中的逗号应用
for语句中的表达式1和表达式3,除了可以使用简单的表达式,还可以使用逗号表达式,即包含两个或更多个简单表达式,中间用逗号隔开。例如,在表达式1处为变量iSum和iCount设置初始值,代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_54.jpg?sign=1739356293-uwTSV7v6XjPtdGZXp0nVnT1qrqZOc6na-0-83a398ca8757011e9e0e30fc6938a746)
或者在表达式3处执行循环变量自加操作两次,代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_55.jpg?sign=1739356293-AH05Co3f7Hb1FFSS73taXF5bF0akGzjj-0-dde15241c176c36731a46144c6a42246)
在逗号表达式中按照自左向右的顺序求解,整个逗号表达式的值为最右边的表达式的值。例如:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt006_56.jpg?sign=1739356293-CgDRhTFVvZjxs6XwEMjJjuCAoQMkH5c7-0-cb037bd7a0fe72ef4f0e3d2177703c7a)