循环语句
循环语句有三种:while、for、do while,在实际生活中会遇到同一件事情要重复做很多次,于是出现循环语句来对应此场景。
while循环
while循环语法结构
while(表达式)
循环语句;
用以下流程图介绍while循环语句的执行过程:
举例说明:在屏幕上打印1-10的数字,使用while循环,代码如下:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
再例如在生活中重复做某件事情时,遇到突发情况需要终止时,使用关键词break应对这种情况,break的作用是直接终止循环,还有另外一种情况,遇到一点小事,需要临时处理一下,然后继续工作,此时使用关键词continue,continue是用于终止本次循环,本次循环continue后面的代码不会再执行,直接跳转到while的判断部分,进行下一次循环,以下是while语句中break和continue的代码示例:
//break 代码实例
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
{
break;
}
printf("%d ", i);
i = i+1;
}
return 0;
}
思考一下此代码输出的结果是什么?
//continue 代码实例
#include <stdio.h>
int main()
{
char ch = '\0';
while ((ch = getchar()) != EOF)
{
if (ch < ‘0’ || ch > ‘9’)
continue;
putchar(ch);
}
return 0;
}
以上代码打印字符’0’至’9’。
for循环
for循环相比于while循环,其表现出的逻辑更加清晰,实际运用中for循环的使用频率也更高,以下介绍for循环的语法结构与流程图。
for循环语法结构
for(表达式1; 表达式2; 表达式3)
循环语句;
表达式1
表达式1为初始化部分,用于初始化循环变量的。
表达式2
表达式2为条件判断部分,用于判断循环时候终止。
表达式3
表达式3为调整部分,用于循环条件的调整。
for循环流程图
以下为for循环案例:
#include <stdio.h>
int main()
{
for(i=1; i<=10; i++)
{
printf("hehe\n");
}
return 0;
}
对于break与continue在for循环中的运用与while相比有些许不同,代码如下所示:
//代码1
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
break;
printf("%d ",i);
}
return 0;
}
//代码2
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;
printf("%d ",i);
}
return 0;
}
具体区别读者可以自行将代码运行输出进行对比。
for循环的代码建议如下:*
(1). 不可在for 循环体内修改循环变量,防止 for 循环失去控制。
(2). 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
do…while()循环
do语句的语法结构
do
循环语句;
while(表达式);
do…while()循环循环的流程图
do语句的特点:
循环至少执行一次,使用的场景有限,不经常使用,以下为示例代码:
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
}while(i<10);
return 0;
}
总结
本次介绍了三种循环方式,需熟练掌握,在以后的学习中会经常遇到,最后留给读者几道使用循环可以解决的练习题,后续会分享相关解题代码。
- 计算 n的阶乘。
- 计算 1!+2!+3!+……+10!
- 在一个有序数组中查找具体的某个数字n。(讲解二分查找)
- 编写代码,演示多个字符从两端移动,向中间汇聚。
- 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则 提示登录成,如果三次均输入错误,则退出程序。