循环结构
while循环
例一: 用while打印出1~100之间7的倍数。
// 初始化循环变量
int i = 1;
// 开始循环,循环条件为100内
while (i <= 100) {
//如果满足条件,执行括号内的语句,如果不满足,跳出循环
// 判断是否为7的倍数,如果是,输出
if (i % 7 == 0) {
printf("%d ", i);
}
//需要注意,循环增量务必保证可以执行到
i++;
//语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
}
例二:用while打印出1~100之间个位为7的数。
// 初始化循环变量
int i = 1;
// 开始循环,循环条件为100
while (i <= 100) {
//如果满足条件,执行括号内的语句,如果不满足,跳出循环
// 判断是否个位为7,如果是,输出
if (i % 10 == 7) {
printf("%d ", i);
}
i++;
//语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
}
例三:⽤while打印出1~100之间十位为7的数
// 初始化循环变量
int i = 1;
// 开始循环,循环条件为100
while (i <= 100) {
//如果满足条件,执行括号内的语句,如果不满足,跳出循环
// 判断是否十位为7,如果是,输出
if (i / 10 == 7) {
printf("%d ", i);
}
i++;
//语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
}
例四:用while打印出1~100之间不是7的倍数并且不包含7的数。
// 初始化循环变量
int i = 1;
// 开始循环,循环条件为100
while (i <= 100) {
//如果满足条件,执行括号内的语句,如果不满足,跳出循环
//判断能否被七整除,个位是否为七,十位是否为七,如果不是,输出
if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {
printf("%d ", i);
}
i++;
//语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
}
例五:用户从控制台输入⼀个n,用while打印n个随机数(范围为10~30)
// 初始化循环变量
int i = 0;
printf("Input number:");
scanf("%d", &i);
// 开始循环,循环条件为i
while (i > 0) {
//如果满足条件,执行括号内的语句,如果不满足,跳出循环
// 获取一个10~30随机数
int a = arc4random() % 31 + 10;
printf("%d ", a);
i--;
//语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
}
printf("\n");
例六:⽤户从控制台输⼊⼀个n,用while打印n个随机数(范围为30~70),找出n个随机数中的最⼤值
// 初始化循环变量
int i, max = 0;
printf("Input number:");
scanf("%d", &i);
// 开始循环,循环条件为i
while (i > 0) {
//如果满足条件,执行括号内的语句,如果不满足,跳出循环
// 获取一个随机数
int j = arc4random() % 31 + 10;
// 判断,最大值赋值给max
if (j > max) {
max = j;
}
// 输出获取的随机数
printf("%d ", j);
i--;
//语句进行到这里,下面应该执行的时返回到条件表达式而不是直接退出循环
}
// 输出最大值
printf("max = %d\n", max);
for循环
1.循环变量初始化 2.循环条件->(条件满足才执行) 3.语句 4.循环增量
for (int i = 1; i < 101; i++) {
if (i % 7 == 0) {
printf("%d ", i);
}
}
printf("\n");
创建一个3次的循环
for (int i = 0; i < 3; i++) {
printf("外层循环第%d次开始\n",i + 1);
// 循环打印1 2 3
for (int j = 1; j < 4; j++) {
printf("内层循环第%d次开始:",j);
printf("%d \n", j);
}
printf("内层循环结束\n");
printf("外层循环第%d次结束\n\n",i + 1);
}
例一:输出九九乘法表
// 控制行
for (int i =1; i < 10; i++) {
// 控制列
for (int j =1; j <= i; j++) {
printf("%d×%d=%-2d ", i, j, i *j);
}
printf("\n");
}
例二:打印三个数字(0 - 9)的组合可能(组合成三位数)
// 控制百位
for (int i =1; i <= 9; i++) {
// 控制十位
for (int j =0; j <= 9; j++) {
//控制个位
for (int k =0; k <= 9; k++) {
// 输出三位数
printf("%d%d%d ", i, j, k);
}
}
}
break与continue的区别
break的作用跳出循环
int i = 0;
while (i < 100) {
printf("%d", i);
i++;
if (i == 5) {
break;
}
}
continue 的作用;结束本次循环,继续下一次
int j = 0;
while (j < 100) {
if (j == 5) {
continue;
}
printf("%d",j);
j++;
}
arc4random()函数
例一:测试随机数,arc4random()返回一个unsigned int 类型的随机数
unsigned int r = arc4random();
// 无符号整型需要用%u作为转义字符
printf("%u\n", r);
// 如果想要指定范围内的随机数
// arc4random() %(最大值 - 最小值 + 1) + 最小值
int r1 = arc4random() % (35 - 15 + 1) + 13;
printf("%d\n", r1);
// 从0开始可以很直观的看出循环次数,并且数组也是从0开始
int i = 0;
while (i < 10) {
//需要注意不要把arc4random()写在循环外
int r2 = arc4random() % (35 - 15 + 1);
printf("%d ", r2);
i++;
}
// 最后加个换行,让控制台更整齐
printf("\n");