while语句也称为当型循环控制语句,直观地讲就是根据条件表达式的值,决定循环体内语句的执行次数。
格式:while(表达式)语句;
执行过程:先计算循环条件表达式的值,如果为真(非0)则执行循环体语句,然后再进行循环判断,直到循环条件表达式的值为假(0),则结束循环,转去执行while语句后面的语句。while语句的执行流程如图6.1 所示。
说明:
(1)循环条件表达式,一般是关系表达式或逻辑表达式,必须用括号括起来。只要表达式的值为真(非0),循环就继续执行。
(2)当循环体中语句超过一个语句时,必须用{}括起来,构成复合语句。
(3)应注意循环条件的选择,避免死循环。
(4)while语句先进行条件判断,然后决定是否执行循环体语句;如果第一次条件为假,则循环体语句一次也不执行。
(5)循环之前要为有关变量赋初值。对于循环控制变量,一般要设置满足循环条件的初值;其他相关变量一般根据需要设置一个特殊值,如0、1、空串等。
图6.1 while语句的执行流程
【例6.1】求1+2+3+4+…+99+100 的值。
分析:
本例是一个典型的累加问题。对于简单的累加问题应注意以下几点:
(1)和变量sum 初值为0。
(2)循环变量i 累加的开始值,即初值,本例初值为1。
(3)循环变量i 累加的结束值,即终值,本例终值为100。
(4)相邻两个数的间隔,即步长,本例步长值为1。
(5)累加的典型语句为"sum=sum+ i;"。
运行结果:
程序讲解:
在本例程序中,和变量sum 的初值可在变量定义时初始化,循环变量i 的初值应在循环语句前预先处理,终值在一般循环条件中体现,步长处理和累加的典型语句"sum=sum+i;i++;"则放在循环体中。
思考:如果在while(i<=100)后加一个分号,程序的运行结果将如何?(www.xing528.com)
【例6.2】求1×2×3×4×5×6×7 的值。
分析:
本例是一个典型的累乘问题,程序的总体结构与例6.1 相似。同样,对于简单的累乘问题应注意以下几点:
(1)积变量s 初值为1,同时,连乘很容易产生一个很大的数,要特别注意积变量的数据类型。
(2)循环变量i 累乘的开始值,即初值,本例初值为1。
(3)循环变量i 累乘的结束值,即终值,本例终值为7。
(4)相邻两个数的间隔,即步长,本例步长值为1。
(5)累乘的典型语句为"s =s*i;"。
运行结果:
程序讲解:
在本例程序中,积变量s 的初值可以在变量定义时初始化即s=1,循环变量i 的初值应在循环语句前预先处理,终值在一般循环条件中体现,步长处理和累乘的典型语句"s = s * i;i++;"则放在循环体中。
注意:
(1)注意给出循环的初始条件,如本例中"s=1;i=1;"。
(2)循环体如包括一个以上的语句,则必须用{}括起来,组成复合语句。
(3)循环体中必须有使循环趋于结束的语句,否则程序将进入"死循环"不结束,如本例中"i++;"。
【例6.3】统计从键盘输入一行字符的个数。
运行结果:
程序讲解:
本例程序中的循环条件为getchar()!='\n',其意义是,只要从键盘输入的字符不是回车就继续循环。循环体n++完成对输入字符个数的计数,从而程序实现了对输入一行字符的字符个数计数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。