8.1.3.4 While循环语句

在许多实际问题中,经常遇到具有规律性的重复运算,因此在程序设计中就需要将某些语句重复执行。一组重复执行的语句称为循环体,每一次重复都必须根据某个条件的测试,查看条件是否满足,决定重复是否进行下去。这种重复处理的工程采用程序设计中的另一种重要的基本结构——循环结构实现。在实际程序设计中,绝大数的程序都会用到循环结构,循环结构的特点是:在给定的条件为真时,计算机反复执行的一组程序指令,直到条件为假时结束。给定的条件称为循环条件,反复执行的一组语句称为循环体,循环结构是由循环体和循环条件两部分组成。M语言的循环结构采用当型循环,循环条件成立时,执行循环体,否则不执行循环体。

1. while语句

while语句用于首先判断循环条件,当条件为“真”时,程序重复执行某些操作。其语句格式为:

while (条件表达式)

 {

     循环体语句;

}

其中的whileM语言的关键字,表示这是while循环。条件表达式一般是关系表达式或逻辑表达式,可以是其他表达式,其结果值为逻辑真(1)或逻辑假(0),用以描述控制循环的条件,规定循环语句被执行到什么时候终止。循环体语句是while结构中要被反复执行的部分,即循环体。循环体可以是一条简单语句,也可以是由多条语句构成的复合语句。

while语句的执行过程如下图所示:

计算表达式的结果值是否为“真”;如果为“真”则执行循环体,重复上述过程,指定表达式的结果值为“假”,退出循环。执行while语句的后续语句。while语句的特点是:首先判断循环条件,然后执行循环体语句。所以循环的次数一般不能事先确定,需要根据循环条件(表达式的值)来判定,如果开始时循环条件为假,则循环体一次也不执行(执行0次)。

例如:

程序清单中所列的代码就是使用while语句的示例,该程序的功能是得到1~100之间自然数之和。

while语句的使用示例

int count,sum;

count = 1;

sum = 0;

while (count <= 100)

{

     sum = sum + count;

     count = count +1 ;

}

程序运行结果 sum 的值为:5050

2. 循环的嵌套及其应用

while循环语句的循环体内包含另一个完整的while循环语句,称为循环的嵌套。这种嵌套的过程可以有多重,理论上讲这种嵌套可以是无限的。

例如:

程序清单中所列的代码就是循环的嵌套的示例,该程序实现的功能是:求出用数字0~9可以组成多少个没有重复的三位奇数。

此类问题的解决需要将所有满足条件的可能情况全部列出来,需要用循环嵌套来处理。对百位、十位、个位分别采用循环,依题意,百位的变化是1~9,十位的变化是0~9,个位的变化范围是1~9,由于是奇数,可以不考虑偶数的情况,所有个位处理每次递增为2

循环的嵌套示例

int  n,i,j,k;

n = 0;   // 记录奇数的个数

i = 1;

while(i <= 9)    //百位数的处理

{

   k = 1;

   while(k <= 9)    //个位数的处理,k = k + 2为奇数

    {

      if (k != i)

       {

          j = 0;

         while(j <=9)   //十位数的处理

         {

            if(j !=i && j!=k)

              {

                 n = n + 1;

}

           j = j + 1;

}

}

     k = k + 2;

}

i = i + 1;

}

程序运行后的结果:

n 的结果是320,表明有320个这样的奇数。