一、通过案例了解While语句的基本使用
思考:求1~100的累加和
首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次取1、2、……、100),只要解决以下3个问题即可:
(1)将n的初值置为1;
(2)每执行1次“sum += n;”后,n增1;
(3)当n增到101时,停止计算。此时, sum的值就是1~100的累计和。
while (表达式) 循环体语句
含义:当表达式为真(非0值)时,执行while语句中的内嵌语句。
1、循环体如果包含一个以上的语句,必须使用复合语句形式。
2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。
3、先判断表达式,后执行语句。
案例:
求1~100的累加和。
int main()
{
int i,sum;
i=1; sum=0;
while (i<=100)
{
sum=sum+i;
i++;
}
printf(“sum=%5d\n”,sum);
}
1、如果去掉循环体中的大括号,执行过程将会怎样变化?
2、在循环体中,使循环条件趋向于不满足(假)的语句是哪条?
结果;
sum=5050
如果while的 (表达式) 值为0,则循环体一次也不执行 (例如当i的初值=101) 。
在循环体中必须有使循环趋向结束的操作,否则循环将无限进行(死循环)。
在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。
二、do while语句的基本使用
格式:
do 循环体语句 while (表达式);
执行do-while语句中的内嵌语句,直到表达式为假(0)才跳出循环
1、循环体如果包含一个以上的语句,必须使用复合语句形式。
2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。
3、先执行循环体语句,后判断表达式的值。
问题:
用do…while循环求n!(n为用户输入值)。
算法描述:
(1)定义变量n,接受用户的输入;
(2)定义累乘器变量multi,multi ← 1;
(3)定义变量i,i ← 1; (4)如果 n < 0,则给出相应的提示信息;
(4) 否则,如果 n = 0,则直接输出变量multi的值1; 否则,执行第5~6步。
(5)如果i <= n,则循环执行以下语句 multi ← multi * i,实现累加功能; i ++;
(6)输出multi的值。