for循环
阶乘的程序
n!=1*2*3*…*n
变量:读用户的输入需要一个int的n,计算结果需要用一个变量保存(可以是int的factor),计算过程中需要有一个变量不断地从1递增到n(可以是int的i)
int n
scanf("%d", &d);
int fact = 1;
int i = 1;
while ( i <= n ) {
fact *= i;
i++;
}
printf("%d!=%d\n", n, fact);
for语句
int n;
scanf("%d", &n);
int fact = 1;
int i = 1;
for ( i = 1; i <= n; i++ ) {
fact *= i;
}
printf("%d!=%d", n, fact);
i=1:初始动作
i<=n:循环继续的条件
i++:循环每轮要做动作
for循环
for(对于)循环就像一个计数循环:设定一个计数器,初始化它,然后再计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整
小套路:做求和程序时,记录结果的变量应该初始化为0,而做求积的变量时,记录结果的变量应该先初始化为1
循环控制变量i只在循环里被使用了,在循环外没有任何用处,因此可以把变量i的定义写到for语句里去
int n;
scanf("%d", &d);
int fact = 1;
for ( int i = 1; i<=n; i++ ) {
fact *= i;
}
printf("%d!=%d", n, fact);
(也可以把i初始化为2,省去一轮循环)
循环的计算和选择
循环次数
for(i=0;i<n;i++)
循环的次数是n,而循环结束以后,i的值是n。循环的控制变量i,是选择从0开始还是从1开始,是判断i<n还是判断i<=n,对循环的次数、循环结束后变量的值都有影响
for == while
for (int i=1; i<=n; i++) {
fact *= i;
}
==
int i=1;
while (i<=) {
fact *= i;
i++;
}
格式
for((初始动作);条件;每轮动作){
}
for中每一个表达式都是可以省略的
三种循环(for,while,do-while)
tips for loops
- 如果有固定次数,用for
- 若果必须执行一次,用do-while
- 其他情况用while