第三周:循环
- while 循环
//位数判断
#include <stdio.h>
int main(void)
{
int x, n = 0;
scanf("%d",&x);
n++;
x /= 10;
while (x != 0){
n++;
x /= 10;
}
printf("%d",n);
return 0;
}
- 条件成立是循环继续的条件
- while 当条件满足时进行循环体内的语句
- 循环体内要有改变条件的语句,否则变为死循环
-
尝试在纸上模拟运算
-
do-while 循环
- 先经过循环体,在进行判断
- 区别仅上,其他一致
//位数判断
#include <stdio.h>
int main (void)
{
int x;
scanf("%d", &x);
int n = 0;
do
{
x /= 10;
n++;
} while ( x > 0); //注意这里有分号
printf("%d",n);
return 0;
}
- for循环
//while版阶乘
#include <stdio.h>
int main(void)
{
int n, r = 1, i=1;
printf("请输入n:");
scanf("%d", &n);
while (i <= n)
{
r *= i;
i++;
}
printf("%d的阶乘为:%d", n, r);
return 0;
}
//for版本阶乘
#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
int fact = 1;
int i = 1;
for( i = 1; i <= n; i++ ){
fact *= i;
}
/*
for (i = n; i >1 ;i--){
fact *= i;
}
*/
printf("%d!=%d\n", n, fact);
return 0;
}
-
for( 初始条件(已有可省) ; 循环继续的条件 ; 循环每一轮要做的动作 )
-
循环的选择
for循环=while 循环
Tips:
- 如果有固定次数,用for
- 如果必须执行一次,用do_while
- 其他情况用while