第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=0i=1i=2i=3i=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=1i=2i=3i=4i=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 711 13 17 19 23
- printf("%d\n",x) 输出的x之间换行
123571113171923
- printf("%d\t",x) 输出的x之间列对齐
1 2 3 5 711 13 17 19 23
4.4.3 循环控制:从嵌套的循环中跳出