1、while循环
while (循环条件) { 循环体;
}
1 // 1.定义循环变量2 int time = 1;3 // 2.循环条件4 while (time <= 3) {5 // 3.循环体6 printf("%d\n",time);7 // 4.循环增量8 time++;9 }
练习:打印1-100之间所有的数
1 int number = 1;2 while (number <= 100) {3 printf("%-4d", number);4 number++;5 }
2、do...while循环
do { 循环体 } while (循环条件);
1 int a = 1;2 do {3 a++;4 } while (a > 10);5 printf("a = %d\n", a);
3、for循环
for(定义循环变量 ; 循环条件;循环增量){...}
练习:用for循环打印出1~100之间既不是7的倍数并且也不包含7的数。
1 for (int i = 1; i <= 100; i++) {2 if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {3 printf("%-4d", i);4 }5 }
4、循环嵌套
打印:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
1 // 控制行数2 for (int i = 1; i <= 5; i++) {3 // 每一行要打印的内容4 for (int j = 1; j <= i; j++) {5 printf("%d ", j);6 }7 printf("\n");8 }
打印乘法口诀表
1 for (int i = 1; i <= 9; i++) { 2 // 控制打印的方格3 for (int j = 1; j <= i; j++) { 4 printf("%dx%d=%d ", j, i, j*i);5 }6 printf("\n");7 }
5、for循环和while的区别
for:循环通常用于知道循环次数的情况下使用(常用) while:不明确循环次数,知道循环结束的标识
6、break,continue
break:在switch...case中,结束当前的case分支 在循环中,遇到break,break后面的语句不再执行并结束整个循环 continue:在循环中遇到continue,后面的语句不再执行并结束本次循环
练习:打印1-20之间所有的数,如果是7,不打印,如果是17,17和后面的数不再打印
1 int a = 0; 2 while (a < 20) { 3 a++; 4 if (a == 7) { 5 continue; 6 } 7 if (a == 17) { 8 break; 9 }10 printf("%d ", a);11 }
7、随机数
arc4random()
原理: 余数 < 除数
取对应区间随机数公式
[0, n] arc4random() % (n + 1) [a, b] arc4random() % (b - a + 1)+a
练习:用while打印10个随机数(范围为10~30),求最大值和最小值。
1 int number = 1; 2 int max = 0; 3 int min = 30; 4 while (number <= 10) { 5 // 打印随机数(范围为10~30) 6 int random = arc4random() % 21 + 10; 7 printf("%4d", random); 8 if (max < random) { 9 max = random;10 }11 if (min > random) {12 min = random;13 }14 15 number++;16 }17 printf("max = %d\n", max);18 printf("min = %d\n", min);