#01、循环结构
##1. for语句
一般情况下,对于事先能确定循环次数的循环结构,使用for语句是比较方便的。for语句的格式如下:
其中,“表达式1: 表达式2: 表达式3”是一个冒号表达式,将产生一个行向量。表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。
for语句的执行过程如图1所示。首先计算3个表达式的值,产生一个行向量,再将向量中的元素逐个赋给循环变量,每次赋值后都执行一次循环体语句,当向量的元素都被使用完时,结束for语句的执行,而继续执行for语句后面的语句。
■ 图1 for语句执行过程
关于for语句的执行过程还要说明以下几点。
(1) for语句针对向量的每一个元素执行一次循环体,循环的次数就是向量中元素的个数,也可以针对任意向量。例如,下面的循环结构共循环4次,k的值分别为-1、32、20、5。
(2) for语句中的3个表达式只在循环开始时计算一次,也就是说,向量元素一旦确定将不会再改变。如果在表达式中含有变量,即便在循环体中改变变量的值,向量的元素也不改变。例如,下列for语句中的向量元素为1、3、5、7、9,不会因循环体中改变n的值而改变向量的元素。
(3) 退出循环之后,循环变量的值就是向量中最后的元素值。例如,下列for语句中的向量元素为1、3、5、7、9,在for循环之后的k值是9。
(4) 当向量为空时,循环体一次也不执行。例如,下列for语句中的冒号表达式产生一个空向量,即向量中没有任何元素,这时循环一次也不执行。
【例1】一个3位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部的水仙花数。
采用穷举方法,对所有的3位整数逐个进行判断,进而找出全部水仙花数。要判断水仙花数,关键的一步是先分别求3位整数的个位、十位、百位数字,再根据条件判断该数是否为水仙花数。程序如下:
程序运行结果如下: