第三天我们学习了C语言中的循环结构。
1.C语言中一共有三种基本结构:顺序结构,分支结构,循环结构。
2.循环结构指在满足特定条件下,反复执行某程序段。
3.循环结构中,有while循环,do..while循环和for循环。
4.while循环的格式:
while (条件表达式) {
语句;
}
//如果条件表达式为真时,执行循环体;否则,循环停止。
//注意:循环变量要保证可以执行到,否则进入死循环。
例题:用while打印出1~100之间7的倍数。
// 定义一个int类型的变量,并初始化循环变量
int i = 1;
// 开始循环,循环条件为100内的整数
while (i <= 100) {
// 如果满足条件,执行括号内的语句,如果不满足,跳出循环
// 需要进行判断,如果为7的倍数才打印
if(i % 7 == 0){
printf("%d\n", i);
}
// 需要注意,循环增量务必保证可以执行到,否则进入死循环
i++;
// 语句进行到这里,下面应该执行的是返回到条件表达式而不是直接退出循环
}
5.随机数的使用:arc4random()
测试随机数,arc4random()返回一个unsigned int类型的随机数
unsigned int r = arc4random();
// 无符号整型需要用%u作为转义字符
printf("%u\n", r);
如果想要指定范围内的随机数,则公式:arc4random() % (最大值 - 最小值 + 1) + 最小值;
例题1:打印10个随机数。
// 循环变量习惯从0开始
int i = 0;
// 从0开始可以很直观的看出循环次数,并且数组也是从0开始
while(i < 10){
//需要注意不要把arc4random()写在循环外
int r = arc4random() % (35 - 15 + 1) + 15;
printf("%d ", r);
i++;
}
// 最后加个换行,让控制台更整齐
printf("\n");
例题2:打印n个10-30的随机数,并输出最大值。
printf("请输入n的值:");
// 初始化循环变量以及循环次数,以及用来保存最大值的信息
int i = 0, n = 0, max = 0;
// 输入n的值
scanf("%d", &n);
// 循环开始,循环次数为n
while(i < n){
// 随机生成10-30范围的随机数
int r = arc4random() % (70 - 30 + 1) + 30;
// 用新随机出现的数值与当前最大值比较,如果最大值小于新值,则替换成最大值
max = max > r ? max : r;
// 需要注意,不要在循环内输出最大值,要在计算之后一次打印(循环外)
printf("%d ", r);
// 循环变量不能忘记
i++;
}
// 注意美观
printf("\n");
// 输出最大值
printf("max = %d\n", max);
6.break在switch语句中的作用:跳出switch语句。
break在循环体中的作用:跳出本层循环(通常与if连用)。
continue的作用:结束本次循环,继续下一次循环(通常与if连用)。
7.do..while循环的格式:
do{
语句;
}while(条件表达式);
//先执行循环体,再判断循环条件,直到循环条件不满足,循环结束。
//for语句执行次序:1.循环变量初始化 2.循环条件->(条件满足才执行) 3.语句 4.循环增量->2.3.4->2.3.4->2(条件不满足)->退出
//进入循环
for (int i =1; i <= 100; i++) {
// 判断是否为7的倍数
if (i % 7 == 0) {
// 输出i的值
printf("%d\n", i);
}
// 千万别写循环增量
}
9.循环嵌套
例题:实现九九乘法表
//实现乘法⼝口诀表。
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
if (j <= i) {
printf("%d * %d = %2d ", i, j, i*j);
}
}
printf("\n");
}