【新手C语言】3.0 循环 从while 到 for
【概述】
一般认为,循环由三个最基本的部分构成:判断条件,执行步骤,更新参数
利用循环,我们可以完成一些“在某些条件下不断执行”的操作,循环包括while,do-while,以及for
其中while的两个比较易于理解,不过熟练后还是for更舒服且用得多。三种循环各有各自的功能,不分好坏
【while】
最基本的循环,最根本的满足了“判断条件符合——进行循环——直到条件不符合退出循环”的模式
while(条件){
循环的语句;
...
}
当满足条件时,便会不断执行循环的语句。值得注意的是,在循环中,需要在循环语句中包含“更新参数”的部分,比如你的条件是a>0是一直执行,那么循环中就必需要有改变a的数值的部分,否则就是死循环
当然除了改变参数以外还有其它跳出循环的办法,这个就是后话的
while的特征是:无论怎样,先进行判断,也就是while的操作总会发生在“判断”之后。有的时候我们想某个代码一开始就执行一次,无论判断的结果是什么。这时候就需要do-while循环来解决这件事情
【do-while】
do-while的特点在于,无论如何,do中的部分总会被执行一次,至于之后还执不执行,那就看后续判断了
#include <stdio.h>
int main (void)
{
int x;
scanf("%d",&x);
int n =0;
do
{
x/=10;
n++;
}while (x>0);
printf("%d",n);
; return 0 ;
}
如上代码,x/=10以及n++一开始就会被执行一次,并且在x>0时会被反复执行,直到x<=0为止
说白了,do-while就是一个“一定会执行一次”的while循环
【for】
for循环是一个有固定格式的循环,其格式如下:
for(初始值;判断范围;数据更新){
循环部分
}
for循环就是一个整合了判断范围和数据更新的循环体。对于最开始用于判断的初始值,我们一般设为i
实例
#include <stdio.h>
int main (void)
{
int n;
scanf("%d",&n);
int fact = 1;
int i = 1 ;
for (i=1;i<=n;i++){
// 初始条件;循环继续的条件;循环每一轮做的事情。
fact *= i ;
}
printf("%d! = %d",n,fact);
;return 0 ;
}
做求和时,记录结果的变量应该初始化为0;
做求积时,一般初始化为1(就像这次的fact)
如果循环有固定次数(如n!),用for循环
必须执行一次,用do_while
其他情况一般用while
(其实大部分情况还是看心情和使用情况)
for循环和while循环实际上是等价的,是可以互通的。for(;条件;) 就是 while(条件)
循环语句也是可以嵌套使用的,无论是while,do-while还是for,特别是for的嵌套使用,在之后一些遍历操作中起到重要作用