循环的3中方式
/ while循环的使用
//
while (条件表达式) {
}
//
// 当‘条件表达式’成立的时候,语句就会反复的执行,一旦条件表达式为假,循环停止
// 示例代码
int a = 0;
while (a < 10) {
}
// a < 10
// printf("a = %d", a); a++;
// 练习1
// 1. 用while打印出1~100之间7的倍数。
int i = 0;
while (i < 100) {
if (i % 7 == 0) {
// printf("%d\n", i);
}
i++;
}
// 2. 用while打印出1~100之间个位为7的数。
int i2 = 0;
while (i2 < 100) {
if (i2 % 10 == 7) {
// printf("%d\n", i2);
}
i2++;
}
// 3. 用while打印出1~100之间十位为7的数。
int i3 = 0;
while (i3 < 100) {
if (i3 / 10 == 7) {
// printf("%d\n", i3);
}
i3++;
}
// 4. 用while打印出1~100之间不是7的倍数并且不包含7的数。
int i4 = 0;
while (i4 < 100) {
if ((i4 %7 != 0) && (i4 / 10 != 7) && (i4 % 10 != 7)) {
// printf("%d\n", i4);
}
i4++;
}
// 返回一个随机数
int random = arc4random();
// 返回一个范围在10-100之间的随机数
// 公式:arc4random() % (b - a + 1) + a; // a表示10,b表示100
int random2 = arc4random() % (100 - 10 + 1) + 10;
// 练习2
// 1. 用户从控制台输入一个n,用while打印n个随机数(范围为10~30)。
int n = 0;
// scanf("%d", &n);
int n0 = 0;
while (n0 < n) {
int random3 = arc4random() % (30 - 10 + 1) + 10;
// printf("random3 = %d\n", random3);
n0++;
}
// 2. 用户从控制台输入一个n,用while打印n个随机数(范围为30~70),找出n个随机数中的最大值。
int n2 = 0;
// scanf("%d", &n2);
int n00 = 0;
int maxValue = 0;
while (n00 < n2) {
int random4 = arc4random() % (70 - 30 + 1) + 30;
if (random4 > maxValue) {
maxValue = random4;
}
// printf("random4 = %d\n", random4);
n00++;
}
// printf("maxValue is %d", maxValue);
break作用:
// 在switch语句中,跳出switch语句
// 在while循环中,跳出本层循环(通常与if连用)
// continue的作用:
// 在循环中的作用:结束本次循环(continue后面的代码不再执行),进入下次循环。(通常与if连用)
// do...while循环
// 与while循环非常相似,有一点区别:
// 先执行循环体,再判断循环条件,直到条件不满足的时候,循环结束。
//for(循环变量初始化;循环条件;循环增量) {
循环体;
}
// 循环条件为真,执行循环体。
for (int i = 0; i < 5; i++) {
}
// 4. 用for打印出1~100之间不是7的倍数并且不包含7的数。
for (int i = 0; i < 100; i++) {
if ((i %7 != 0) && (i / 10 != 7) && (i % 10 != 7)) {
// printf("%d\n", i);
}
}
// 循环嵌套
// 1. 实现乘法口诀表
for (int i = 1; i <= 9 ; i++) {
for (int j = 1; j <= i; j++) {
// printf("%d * %d = %-2d ", j, i, i * j);
}
// printf("\n");
}
// 练习5
// 1. 打印三个数字(0 - 9)的组合可能(组合成三位数)。
for (int i = 1; i < 10; i++) {
for (int j = 0; j < 10; j++) {
for (int k = 0; k < 10; k++) {
// printf("%d\n", i * 100 + j * 10 + k);
}
}
}
// 总结
// 1. for最常用,通常用于知道循环次数的循环。
// 2. while也很常用,通常用于不知道循环次数的循环。
// 3. do…while不是特别常用,通常用于需要先执行一次的循环。
// 4. break跳出本层循环,continue结束本次循环。通常与if连用