3.1 while语句
while语句的基本格式为:
whi le(表达式)
循环语句;
先判断括号里的表达式是否成立,当表达式为真时,执行循环语句;当表达式为假时,不执行循环语句,退出循环。while语句的流程图如图3-1所示。

图3-1 while语句的流程图
循环语句可以是一句,即第一个分号前的这一句,也可以是多句,如果有多句循环语句,一定要用大括号将多句括起来,组成复合循环语句。例如,实现x的初值为3,当x>0时,输出x的值的程序如下:
x=3;
whi le(x 0)
print f(“%d”,x);
因为3>0,括号里的表达式成立,因此该程序执行循环语句后的结果就是输出x的值3。然后再判断括号里的表达式是否成立,3>0成立,则继续执行循环语句,又输出x的值3,依次循环下去,这会构成死循环,永远不会停止。因此,在编写循环结构的程序时,一定要考虑使循环终止执行的条件,那就是括号里的表达式不成立的条件,否则编写的程序就没有意义了。
如果在程序中添加一句变量自增或自减的程序,如
x=3;
whi le(x 0)
{
print f("%d",x);
x--;
}(https://www.daowen.com)
大括号里的两条语句都是循环语句。x的初值为3,3>0,表达式成立,执行循环语句,输出3,x自减1,x的值变为2,第1轮循环结束。再判断2>0,表达式成立,执行循环语句,输出2,x自减1,x的值变为1,第2轮循环结束。再判断1>0,表达式成立,执行循环语句,输出1,x自减1,x的值变为0,第3轮循环结束。再判断x>0是否成立,表达式不成立,不执行循环语句,退出循环。整个程序的执行结果是输出了321。
如果上述程序没有加大括号,即
x=3;
whi le(x 0)
pr int f("%d",x);
x--;
循环语句只包括while后面第一个分号前的那一句,而不包括x--,因此又构成了死循环,每次判断3>0均成立,因此一直输出3,永不停止。
如果while后面第一个分号前是空的,即空语句,也是合法的,如
whi le(x 0);
上述语句也就是指当x 0时什么也不执行。
例3-1 求1到10的整数之和。
程序流程图如图3-2所示。
程序如下:



图3-2 求1到10的整数之和的流程图