第4周:循环
C
4.1.1 循环:while循环
while循环
while (条件成立) {
……
}
- 循环体内要有改变条件的机会
- 如果把while翻译作“当”,那么一个while循环的意思就是:当条件满足时,不断地重复循环体内的语句。
- 循环执行之前判断是否继续循环,所以有可能循环一次也没有被执行。
- 条件成立是循环继续的条件。
验证
- 测试程序常使用边界数据,如有效范围两端的数据、特殊的倍数等
4.1.2 循环:do-while循环
do-while循环
- 在进入循环体的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。
do
{
<循环体语句>
} while (<循环条件>);
两种循环
- do-while循环和while循环很像,区别是在循环体内执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后才来判断条件。与while相同的是,条件满足时执行循环,条件不满足时结束循环。
4.2.1 循环应用
随机数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int a = rand();
printf("%d\n",a);
return 0;
}
%100
4.3.1 for循环
for循环
- for循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步骤进进行调整。
for = 对于
- for (count=10;count>0;count--)
- 读成:“对于一开始的count=10,当count>0时,重复做循环体,每一轮循环在做完循环体内语句后,使得count--。”
4.3.2 for循环:循环的计算和选择
循环次数
- for (i=0; i < n; i++)
- 则循环次数是n,而循环结束后,i的值是n。
- 循环的控制变量i,是选择从0开始还是从1开始,是判断i < n还是判断i <=n,对循环的次数,循环结束后变量的值都有影响。
#include <stdio.h>
int main()
{
int i;
for (i=0;i<5;i++) {
printf("i=%d\n", i);
}
printf("\n最后i=%d\n",i);
return 0;
}
i=0
i=1
i=2
i=3
i=4
最后i=5
#include <stdio.h>
int main()
{
int i;
for (i=1;i<=5;i++) {
printf("i=%d\n", i);
}
printf("\n最后i=%d\n",i);
return 0;
}
i=1
i=2
i=3
i=4
i=5
最后i=6
for循环
for (初始动作;条件;每轮的动作) {
}
- for 中的每一个表达式都是可以省略的 for (;条件;) == while (条件)
for (int i=1;i<=n;i++) {
fact *=1;
}
int i=1;
while (i<=n) {
fact *= i;
i++;
}
Tips for loops
- 如果有固定次数,用for
- 如果必须执行一次,用do-while
- 其他情况用while
4.4.1 循环控制:循环控制
break vs continue
- break:跳出循环
- continue:跳过循环这一轮剩下的语句进入下一轮
4.4.2 循环控制:嵌套的循环
嵌套的循环
- 循环里面还是循环
- printf("%d ",x) 输出的x之间有空格间隔
1 2 3 5 7
11 13 17 19 23
- printf("%d\n",x) 输出的x之间换行
1
2
3
5
7
11
13
17
19
23
- printf("%d\t",x) 输出的x之间列对齐
1 2 3 5 7
11 13 17 19 23
4.4.3 循环控制:从嵌套的循环中跳出