C_Language_04
C_Language_04
循环结构:
程序中的循环结构:当符合某个条件时,重复执行某段代码。
循环结构语句:for while do...while
循环作用:减少重复冗余代码,增加代码可读性,易于维护。
while:
while 当:条件表达式为真或假
while (条件表达式) {
语句;
}
示例:
int a = 1;
while (a <= 10) {
printf("hello world!\n");
a++; //循环增量
}
练习:
打印100以内7的整数倍
int i = 1;
while (i <= 100) {
if (i%7 == 0) {
printf("%d\n",i);
}
i++;
}
练习:
打印100以内个位为7的数
int i = 1;
while (i<= 100) {
if (i%10 == 7) {
printf("%d ",i);
}
i++;
}
printf("\n");
随机数:
1.arc4random()返回一个随机数
2.获取某个范围的随机数
(1)获取[0,b]范围内的随机数
arc4random()%(b-0+1)+0,余数<除数
(2)获取[a,b]范围内的随机数,即[a,b-a]范围内
arc4random()%(b-a+1)+a
综合示例:
// 从控制台接受一个数
int n = 0;
printf("请输入一个数:");
scanf("%d",&n);
// 循环产生随机
int count = 0;
printf("范围为10~30的%d个随机数为:",n);
while (count < n) {
int num = arc4random()%(30-10+1)+10;
printf("%d ",num);
count++;
}
printf("\n");
综合示例:
int n = 0,i = 0,s = 0,max = 1;
printf("请输入一个数:");
scanf("%d",&n);// 从控制台接受一个数
printf("范围为70~30的%d个随机数:",n);
while (i < n) {//循环产生随机数并赋予s
s = arc4random()%(70-30+1)+30;
//打印随机数
printf("%d ",s);
max = s < max ? max : s;//判断,把较大的数赋予max
i++;//计数器自加
}
printf("\n");
//打印最大值
printf("%d个随机数中最大的为:%d\n",n,max);
do...while:
do {
语句
} while (条件表达式);
1.先执行一次语句,再判断
int a = 5;
do {
printf("巴拉巴拉噗\n");
} while (a < 5);
break和continue:
break:提前结束循环
1.switch语句中,结束case,跳出switch语句
2.在循环中,跳出本层循环,break之后的代码不再执行
3.break只能用于循环和switch语句中,不能单独使用
continue:提前结束本轮循环
1.在循环中,跳出本轮循环
2.continue之后的代码不再执行,直接进入下一次循环
示例:
打印1~50之间的数,里面不包含7的倍数
int a = 1;
while (a <= 50) {
if (a % 7 == 0 ) {
a++;
//break;
continue;
}
printf("%d ",a);
a++;
}
printf("\n");
for:
for (循环变量初始化; 循环条件; 循环增量) {
语句
}
示例:
打印图形
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
for (int i = 0; i < 5; i++) {
printf("* * * * *\n");
}
示例:
打印1~50的所有的数
for (int i = 1; i <= 50; i++) {
printf("%d ",i);
}
打印1~100的和
int sum = 0;
for (int x = 1; x <=100; x++) {
sum = sum + x;
}
printf("%d\n",sum);
示例:
打印图形
*
* *
* * *
* * * *
* * * * *
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
printf("* ");
}
printf("\n");
}
示例:
打印图形
* * * * *
* * * *
* * *
* *
*
for (int i = 0; i < 5; i++) {
// for (int j = 0; j < 5-i; j++) {
for (int j = 5; j > i; j--) {
printf("* ");
}
printf("\n");
}
示例:
打印图形
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
for (int i = 0; i < 4; i++) {
for (int j = 4; j >= i; j--) {
printf(" ");
}
for (int j = 0; j <= i; j++) {
printf(" *");
}
printf("\n");
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
printf(" ");
}
for (int j = 5; j > i; j--) {
printf(" *");
}
printf("\n");
}
for循环和while循环的区别:
while循环可以用于不知道循环次数的循环,除此之外,与for循环除了格式,没有其他的区别
int i = 0;
for (; i < 5;) {
printf("x ");
i++;
}printf("\n");
int j = 0;
while (j <5) {
printf("x ");
j++;
}
printf("\n");

浙公网安备 33010602011771号