循环程序结构:while
加入嵌入式技术QQ群:398294860,免费获取嵌入式技术文档,嵌入式最新学习路线指南,更多嵌入式教程,访问宅学部落淘宝店:https://wanglitao.taobao.com/
序程序结构、选择程序结构和循环程序结构是程序的三大基本程序结构。任何复杂的程序逻辑都可以由着三种基本的程序结构组合而成。
接下来我们讲一讲循环程序结构。如果我们想让某段代码重复执行若干次,或者做无限次循环运行,此时就要使用循环程序结构来实现了。C语言提供了for和do-while关键字来实现程序的循环运行,这一节,我们先讲while循环。while的使用方法如下所示:
while(表达式)
{
执行语句1;
执行语句2;
}
while(表达式)中的表达式的值为真(非0)时,就会执行大括号代码块内的程序,代码块的程序语句执行一遍后,再去判断表达式的值是否为真,为真的继续执行,为假的话则循环运行结束。
接下来我们编写一个程序:实现一个加法运算,接收用户输入的两个加数,打印它们的和,这个加法运算要运行3次。基于前面的程序,我们可以改写成下面的样子:
#include <stdio.h>
int main(void)
{
int sum;
int a, b;
int i = 0;
while(i < 3)
{
printf("input a b: ");
scanf("%d %d", &a, &b);
sum = a + b;
printf("sum = %d\n", sum);
i++;
}
return 0;
}
在这个程序中,我们在使用了 i < 3 这个表达式作为while循环的条件。每一次执行完代码块的程序语句,完成一次循环后,会将i的值自动加1,然后再去判断 i < 3 这个表达式的值是否成立,作为while循环的条件。编译运行上面的程序:
root@ubuntu:/home/code# gcc main.c
root@ubuntu:/home/code# ./a.out
input a b:1 2
sum = 3
input a b:2 3
sum = 5
input a b:3 4
sum = 7
do-while循环
while循环的运行顺序是:先判断表达式的值是否为真,然后才去运行。如果表达式的值为假,则while循环一次也不会执行。跟while循环类似的还有一个叫做do-while的循环,do-while的循环的运行顺序则是:先执行一遍,然后再去判断表达式的值是否为真。
do
{
执行语句1;
执行语句2;
}while(表达式);//注意,这里的分号不能省略
do-while和while循环相比,它的特殊之处在于:无论表达式是真是假,它都会先无条件执行一次,有点先斩后奏的味道。
死循环
如果我们想让一段代码一直运行,此时可以使用死循环的程序结构:
while(1)
{
执行语句1;
执行语句2;
}
do
{
执行语句1;
执行语句2;
}while(1);
我们将表达式的值设置成一个非零的常数,程序就会无限次地循环下去,除非你使用ctrl+c,结束当前进程的运行。
专门为嵌入式设计的C语言进阶视频教程:《C语言嵌入式Linux高级编程》,一共9期,涉及计算机体系结构、ARM汇编与反汇编、程序的编译链接原理、堆栈内存、Linux内核的面向对象编程思想、多任务编程、C语言的模块化编程等专题,具体课程详情可点击淘宝:C语言嵌入式Linux高级编程