视频讲解
for循环是C#中最常用、最灵活的一种循环结构,for循环既能够用于循环次数已知的情况,又能够用于循环次数未知的情况,本节将对for循环的使用进行详细讲解。
for循环的常用语法格式如下:
for循环的执行过程如下:
(1)求解表达式1;
(2)求解表达式2,若表达式2的值为“真”,则执行循环体内的语句组,然后执行下面第(3)步,若值为“假”,转到下面第(5)步;
(3)求解表达式3;
(4)转回到第(2)步执行;
(5)循环结束,执行for循环接下来的语句。
for循环的流程图如图6.3所示。
for循环最常用的格式如下:
图6.3 for循环流程图
【例6.03】 使用for循环编写程序实现1到100的累加,代码如下:( 实例位置:资源包\源码\06\6.03)
程序运行结果与例6.01的运行结果一样。
可以把for循环改成while循环,代码如下:
for循环在具体使用时,有很多种变体形式,比如,可以省略“表达式1”、省略“表达式2”、省略“表达式3”或者3个表达式都省略,下面分别对for的常用变体形式进行讲解。
for循环语句的一般格式中的“表达式1”可以省略,在for循环中“表达式1”一般是用于为循环变量赋初值,若省略了“表达式1”,则需要在for循环的前面为循环条件赋初值,例如:
此时,需要在for循环之前,为iNum这个循环变量赋初值。程序执行时,跳过“表达式1”这一步,其他过程不变。
把上面for循环语句改成for(iNum <= 100; iNum ++),进行编译,会出现如图6.4所示的错误提示。
图6.4 使用for循环语句中缺少分号错误
出错是因为省略“表达式1”,但是其后面的分号不能省略。
使用for循环时,“表达式2”也可以省略,如果省略了“表达式2”,则循环没有终止条件,会无限地循环下去,针对这种使用方法,一般会配合后面将会学到的break语句等来结束循环。
省略“表达式2”情况的举例:
这种情况的for循环相当于以下while语句:
使用for循环时,“表达式3”也可以省略,但此时程序设计者应另外设法保证循环变量的改变。例如,下面的代码在循环体中对循环变量的值进行了改变:
此时,在for循环的循环体内,对iNum这个循环变量的值进行了改变,这样才能使程序随着循环的进行逐渐趋近并满足程序终止条件。程序执行时,跳过“表达式3”这一步,其他过程不变。
for循环语句中的3个表达式都可以省略,这种情况既没有对循环变量赋初值的操作,又没有循环条件,也没有改变循环变量的操作,这种情况下,同省略“表达式2”的情况类似,都需要配合使用break语句来结束循环,否则,会造成死循环。
例如,下面的代码就将会成为死循环,因为没有能够跳出循环的条件判断语句:
在for循环语句中,“表达式1”和“表达式3”处都可以使用逗号表达式,即包含一个以上的表达式,中间用逗号间隔。例如,在“表达式1”处为变量iNum和iSum同时赋初值: