循环语句
三大循环语句:while语句、do-while语句、for语句
一、while(表达式) 循环语句;
1.该语句的执行流程是:
(1)步骤一:判断小括号中的表达式的值,如果表达式的值为真,则执行while后面的循环语句;如果表达式的值为假,则不执行循环语句,而且结束while语句的执行;
(2)步骤二:如果表达式的值为真,执行完循环语句之后,回到步骤一继续循环判断执行;
如果表达式的值为真,那么,就一直执行循环语句。直到表达式的值为假的时候,才结束while()语句。如下是一个程序测试例子:
include <studio.h>
int main(void){
int i = 3;
while (i--)
printf("i = %d\n",i);
return 0;
}
程序运行的结果如下:
i=2
i=1
i=0
定义 int 类型变量 i,它的值为3;
执行while(i--),那么,i--表达式的值是i变化之前的值,所以,i--表达式的值为3,此时,表达式的值为非0,所以,为真,执行循环语句。所以,执行循环体的循环语句:
printf("i = %d\n", i); //循环体执行的语句
输出i的值;由于已经执行了i--,所以,i变量的值为2,所以,输出 i = 2;
继续执行while(i--),此时,i的值为2,那么,i--表达式的值为i变化之前的值,所以,i--表达式的值为2;是非0值,所以,为真,继续执行循环语句,输出i变量的值;由于执行了i--,所以,i变量的值为1,所以,输出i = 1;
继续执行while(i--),此时,i的值为1,那么,i--表达式的值为i变化之前的值,所以,i--表达式的值为1;是非0值,所以,为真,继续执行循环语句,输出i变量的值;由于执行了i--,所以,i变量的值为0,所以,输出i = 0;
继续执行while(i--),此时,i的值为0,那么,i--表达式的值为i变化之前的值,所以,i--表达式的值为0;是0值,所以,为“假”;此时,while(表达式)中的表达式的值为“假”,那么,就结束while循环的执行。
所以,就不执行循环语句,而且结束while循环语句。
那么,我们可以总结,对于while循环语句,如果while(表达式)中的表达式值为真,那么,就执行循环语句。如果表达式的值为假,就不执行循环语句,而且结束while语句的执行。
2.while(表达式){循环语句;…}
如果要想循环执行多条语句,可以使用大括号{}把多条语句包含起来,作为while循环的执行体,那么,就可以循环执行多条语句,定义的格式如下:
while(表达式)
{
循环语句1;
循环语句2;
…
循环语句N;
}
那么,就有:
如果表达式的值为真,就执行大括号{}定义的循环体,执行循环体中定义的循环语句;执行完循环体中的循环语句之后,继续判断表达式的值。如果表达式的值为假,就不执行循环体中的循环语句,而且结束while语句的执行。
3.while循环注意事项
while (条件) { 满足条件就执行 }
因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了。
二、do while 循环
1.基本概念
(1)入口条件循环:程序进入循环体之前,先执行表达式的判断。若为真则开始执行循环体内的语句;若为假,则不执行循环体内的语句,越过循环体,执行循环体外的语句。
(2)出口条件循环:首先执行循环体内的语句,然后再判断表达式。若表达式为真,则再次执行循环体,若为假,则退出循环,执行循环之后的语句。
两者差异:
入口条件循环有可能一次都不会执行循环体内语句,出口条件循环则至少会执行一次循环体内语句。
2.do while循环的通用形式
do
statemnet
while ( expression )
statement可以是一条简单语句或复合语句。注意,do while循环以分号结尾。
程序示例
include <stdio.h>
int main(void)
{
const int secret_code = 13;
int code_entered;
do
{
printf("请输入密码:");
scanf("%d", &code_entered);
} while (code_entered != secret_code);
printf("do while 成功!\n");
system("pause"); //暂停控制台
return 0;
}
3.do…while循环语句扩展格式:
初始化语句①
do {undefined
循环体语句②;
迭代语句③;
} while (循环条件语句④);
4.执行流程:
第一步:执行初始化语句①,完成循环变量的初始化;
第二步:执行循环体语句②;
第三步:执行迭代语句③,针对循环变量重新赋值;
第四步:执行循环条件语句④,看循环条件语句的值是true,还是false;
如果是true,根据循环变量的新值,重新从第二步开始再执行一遍;
如果是false,循环语句中止,循环不再执行
三、 for循环
1.for (语句1;表达式;语句2)
{
语句块
}
(1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1。
(2)接着判断表达式的条件,如果条件成立,就执行一次循环体中的语句块。
(3)语句块执行完后,接下来会执行语句2。
(4)重复第2)步和第3),直到表达式的条件不成立才结束for循环。
2.一般双层for循环的样式为
for (var i = 0; i < 10; i++) {
console.log("1"); //打印出10次1
for (var j = 0; j < 10; j++) {
console.log("2"); //打印出100次2
}
}
3.注意:
(1)在for循环中,语句1、表达式和语句2都可以为空,for (;;)等同于while (1)。
(2)continue和break两个关键字也可以用在for循环体中。
(3)for循环一般与计数器一起使用。例如:把1到100之间的数值累加起来。
(4)for循环:初始化–循环条件判断–循环体执行–迭代。
(5) for嵌套循环就是把内循环看作一个整体,作为外循环的循环体来用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具