其实不只是C语言有循环语句,几乎所有语言都有循环语句,大家可以想象要做同样一件事情十万次,要是没有循环会多么痛苦!
C语言可以构成循环语句的有如下几种:
1、goto语句和if语句组成; 2、while语句; 3、do while语句; 4、for语句;
goto-if循环语句
goto和if组成的语句最为灵活,但是也最没有结构化,当出现复杂情况时不好维护,因此在实际代码中很少出现,也不鼓励使用,几乎用这种组成的循环都可以用后面三种完成。比如计算1到100之和:
int i = 1, sum = 0; loop: if (i <= 100) { sum = i; i ; goto loop: }
while循环语句
while语句一般形式是:
while (逻辑表达式) { ... }
执行时首先执行逻辑表达式,如果表达式为真值,则执行括号内的循环体,如果循环体只有一条语句,可以不加大括号。执行一次循环体后,再次判断逻辑表达式是否为真,并重复这个过程,直到某次逻辑表达式为假时才会直接跳到循环体之后的语句继续往下执行。
在编写一个任务函数时会常常用这种形式的while循环,比如某一个永久执行的线程函数体可能有如下的形式:
while (1) { ... }
用while改写上面的求和代码如下:
int i = 1, sum = 0; while (i <= 100) { sum = i; }
do while循环语句
这种循环的一般形式为:
do { ... } while (逻辑表达式);
这种循环跟上面基本一样,唯一的差别就是首先无条件的先执行一次循环体后再判断逻辑表达式的值,然后根据这个值决定是否继续循环体,真则继续,假则不再循环,接着执行后面的语句。用do while语句改写上面的求和代码如下:
int i = 1, sum = 0; do { sum = i; } while (i <= 100);
for循环语句
for语句的一般形式为:
for (表达式1; 逻辑表达式2; 表达式3) { ... }
它的执行过程如下: 1> 求解表达式1。 2> 求解逻辑表达式2,若为真值,则执行循环体,然后进入第3步;若其值为假,则跳转到第5步。 3> 求解表达式3。 4> 转回上面第2步继续执行。 5> 执行for语句循环体下面的语句。
由于表达式1只是在开始执行一次,因此常常用于初始化一些变量。表达式2就是控制是否继续循环的条件,表达式3一般是循环中的一些数据变化和数据增量。三个表达式都可以不要,但必须保留分号(;)作为语法错误检查。但是如果表达式2没有设置,则默认为永远是真值。
用for语句修改上面的求和代码如下:
int i; sum; for (i=1,sum=0; i<=100; i ) { sum = i; }
这个也可以跟简单写成如下的样子: for (i=1,sum=0; i<=100; sum =i,i ); 这里把求和部分也放到表达式3里面去了。
C语言的循环语句一共就这些,相信把每一个都仔细理解了,还是比较好掌握。