目录
for循环结构
for(表达式1;表达式2;表达式3)
{
语句;
}
注:1. 两个相临表达式之间需要用;隔开。
2.for(表达式1;表达式2;表达式3)之后不能加;,这样会结束for的语句,是后面的语句无法正常进行。
3.当循环语句里面只有一个语句时可以不加{},否则其他的都要加{}。
对三个表达式的理解
1.在第一个表达式里面,可以有多个变量的声明,也可以是之前有声明,此处只是加以运用,需要注意的是第一个表达式中可以省略,但是分号不能省略。
2.在表达式2中,是进行判断,这里面如果有逗号,则是逗号运算符,最后的判断语句是最后一个表达式。
3.在表达式3中,有逗号,则是对多个变量进行增值。
for循环的运行流程
1.求解表达式1。
2.求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。
3.求解表达式3。
4.转回上面第2步继续执行。
5.循环结束,执行 for 语句下面的语句。
注意:1.表达式1只执行一次。
2.在表达式3中如++i和i++都是一样的,都是在整个循环之后再进行增值。
特殊运用
eg :
已知:S_n= 1+\frac{1}{2}+\frac{1}{3}+…+\frac{1}{n}Sn=1+21+31+…+n1。显然对于任意一个整数 kk,当 nn 足够大的时候,S_n>kSn>k。
现给出一个整数 kk,要求计算出一个最小的 nn,使得 S_n>kSn>k。
#include<stdio.h>
int main()
{
int k;
scanf("%d",&k);
double sn=0;
int n=0;
for(n;sn<=k;++n,sn+=1.0/n);
printf("%d",n);
}
在这里表达式3中有两个语句,并且后面没有其他循环体。