for循环
阶乘
• n! = 1×2×3×4×…×n
• 写⼀个程序,让⽤户输⼊n ,然后计算输
出n!
• 变量:
• 显然读⽤户的输⼊需要⼀个int的n ,然后
计算的结果需要⽤⼀个变量保存,可以
是int的factor ,在计算中需要有⼀个变量
不断地从1递增到n ,那可以是int的i
for循环
for循环像⼀个计数循环:设定⼀个计数器,初始化
它,然后在计数器到达某值之前,重复执⾏循环体,
⽽每执⾏⼀轮循环,计数器值以⼀定步进进⾏调整,
⽐如加1或者减1
for ( i=0; i<5; i=i+1 ) {
printf("%d", i);
}
for =对于
• for ( count=10; count>0; count-- )
• 就读成:“对于⼀开始的count=10 ,当
count>0时,重复做循环体,每⼀轮循环
在做完循环体内语句后,使得count--。”
⼩套路
• 做求和的程序时,记录结果的变量应该初
始化为0 ,⽽做求积的变量时,记录结果
的变量应该初始化为1
• 循环控制变量i只在循环⾥被使⽤了,在循
环外⾯它没有任何⽤处。因此,我们可以
把变量i的定义写到for语句⾥⾯去
Y!
ONL
C99
try
• 1× 1还是1,所以程序的循环不需要从1开
始,那么改成从多少开始合适呢?这样修
改之后,程序对所有的n都正确吗?这样
的改动有价值吗?
• 除了可以从1乘到n来计算n! ,还可以从n乘
到1来计算吧?试试把循环换个⽅向来计
算n。这时候,还需要循环控制变量i吗?
for == while
=
=
for循环
for ( 初始动作; 条件; 每轮的动作) {
}
• for 中的每⼀个表达式都是可以省略的
for (; 条件; ) == while ( 条件 )
循环次数
• for ( i=0; i
• 则循环的次数是n ,⽽循环结束以后,i的
值是n。循环的控制变量i ,是选择从0开始
还是从1开始,是判断i
对循环的次数,循环结束后变量的值都有
影响
三种循环
Tips for loops
• 如果有固定次数,⽤for
• 如果必须执⾏⼀次,⽤do_while
• 其他情况⽤while