【黑马程序员】C语言循环之while循环、for循环、do...while循环

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

 

       循环结构也就是反复执行一段指令,直到满足某个条件为止。相同的食物从不同的角度理解,九可以得到不同的结论。循环结构还可以理解为:在给定的条件成立时,反复地执行相应的程序,直到给定的条件不成立为止。

       循环语句也可以分为两大类:一类是入口循环语句,一类是结束条件循环语句。入口循环语句是先判断循环条件再循环;结束条件循环语句的先执行一次循环体,再判断循环条件。

       C语言中有三种循环语句:while、do...while和for循环语句。循环结构式结构化程序设计的基本结构之一,因此,熟练掌握循环结构是程序设计的基本要求。

 

 

1、while语句

while语句的一般形式:

while(表达式)

语句;

       其中,表达式是循环条件,语句为循环体。

【黑马程序员】C语言循环之while循环、for循环、do...while循环_第1张图片

 

while循环执行流程

       while语句首先检验一个条件,也就是括号中的表达式。当条件为真时,就执行紧跟其后的语句或者语句块。每执行一遍循环,程序都将回到while语句处,重新检验条件是否满足。如果一开始条件就不满足的话,则跳过循环体里的语句,直接执行后面的程序代码。如果第一次检验时条件满足,那么在第一次或其后的循环过程中,必须有是的条件为假的操作,否则,循环无法终止。

       while语句的意思就是当......(表达式)就......(语句),当符合条件时,就会执行while后面的语句:当不符合条件时,便不会执行while语句。书写时要注意其格式,不要在while后加分号,以免造成错误。

使用while语句应注意以下几点:

(1)while语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非0)即可继续循环。

(2)循环体若包括一个以上的语句,则必须用{}括起来,组成复合语句。如果忽略了花括号的用途,语句块没有用花括号括起来,则while语句的范围只到while后面的第一个分号处结束,程序就会得不到预计的结果。

(3)注意循环条件的选择,以避免死循环。如果循环体中没有其他终止循环的手段,因此该循环将无休止地进行下去。

(4)允许while语句的循环体又是while语句,从而形成双重循环。

 

 

2、for循环语句在C语言中是最为常见的循环语句,其功能强大,而且用法灵活。

for语句的一般形式为:

for(表达式1(循环变量赋初值);表达式2(循环条件);表达式3(循环变量))

语句;

       每条for语句包含三个用分号隔开的表达式,这三个表达式可以是任意形式的表达四,大多数情况下都是用于对for循环的控制。for循环语句和while循环语句在语法上要求有一点相同,就是若在循环体内需要多条语句进行描述时,必须用花括号将多条语句括在一起,形成一条复合语句。

 

【黑马程序员】C语言循环之while循环、for循环、do...while循环_第2张图片

 

for循环执行流程

       for循环中,语句的执行过程如下:

(1)先计算表达式1的值;

(2)然后计算表达式2的值,如果表达式2为真(非0),则执行一次循环体;否则,跳出循环,执行步骤5;

(3)计算表达式3的值;

(4)跳转回第2步,循环执行;

(5)循环结束,执行for循环下面的相应语句。

       for循环三个表达式和语句块的作用如下:

       表达式1:用来完成标量的初始化,一般是一个赋值表达式,是用来控制循环的变量,所以称之为循环变量,表达式1称之为循环变量赋初值。

       表达式2:其作用主要是进行判断。表达式2的作用和while循环语句中表达式的作用大致相同。若判断为真,则执行循环体,否则跳出循环。每次执行完循环体都会再次判断表达式2的值,以此决定是否继续执行循环。

       表达式3:其主要功能为修改变量的值,使变量的值作出相应的改变,从而使循环程序逐渐接近结束条件,每执行一次循环体,都会相应地执行此表达式,对变量作出相应的修改。

       语句块:前面所说的循环体其实就是语句块,循环体可以是一条语句,或者是一条复合语句,最应该注意的就是复合语句的花括号“{}”问题。

       使用for循环应注意以下几点:

(1)省略表达式1时,其后的分号不能省略,当表达式1省略时,一般都需要在for循环语句之前给变量赋初值;

(2)省略表达式2时,即不判断循环条件,循环将无终止地进行下去,也就是默认表达式2始终为真;

(3)省略表达式3时,应该另外设法保证循环能正常结束,否则程序会无终止地循环下去。

 

 

3、do...while是C语言三种循环语句其中之一。

do...while语句的一般形式为:

do

语句;

while(表达式);

       其中语句是循环体,表达式是循环条件。

 

【黑马程序员】C语言循环之while循环、for循环、do...while循环_第3张图片

 

do...while循环执行流程

       do...while语句首先执行一次循环体语句中的内容,然后判断表达式。当表达式的值为真时,返回重新执行循环体语句。循环执行,直到表达式的判断为假时止,此时循环结束。

       使用do...while循环应注意以下几点:

(1)在使用do...while语句时,条件要放在while关键字后面的括号里,最后必须加上一个分号;

(2)do...while语句也可以组成多重循环,而且也可以和while语句相互嵌套;

(3)在do和while之间的循环体由多个语句组成时,也必须用{}括起来,组成一个复合语句;

(4)do...while和while语句相互替换时,要注意修改循环控制条件。先执行一次循环体,再判断条件。

 

 

4、while与do...while的区别:

       while语句和do...while语句的区别在于:do...while语句是先执行一次循环体,然后再判断。因此do...while语句至少要执行一次循环体。而while是先判断后执行,如果条件不成立或不满足,则一次循环体也不执行。

 

 

5、通过使用三种不同的循环计算从1加到100的值来表现for循环、while循环和do...while循环各自的特点。

       利用while循环计算从1加到100的和:

#include 

int main(int argc, const char * argv[]) {

    int i = 1,sum = 0;

    while (i <= 100) {
        sum+=i;
        i++;
    }
    printf("从1加到100的和是:%d\n",sum);

    return 0;
}

       利用for循环计算从1加到100的和:

#include 

int main(int argc, const char * argv[]) {
    
    int sum = 0;
    
    for (int i=1; i<=100; i++) {
        sum+=i;
    }
    printf("从1加到100的和是:%d\n",sum);
    
    return 0;
}

       利用do...while循环计算从1加到100的和:

#include 

int main(int argc, const char * argv[]) {
    
    int i = 1,sum = 0;
    
    do {
        sum+=i;
        i++;
    } while (i<=100);
    printf("从1加到100的和是:%d\n",sum);
    
    return 0;
}

    以上三种循环的打印结果都是5050,由此可知三种循环的最终结果是一样的,只是实现的过程和思路略有差别。

 

 

你可能感兴趣的:(【黑马程序员】C语言循环之while循环、for循环、do...while循环)