------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------
一、循环结构概念
1、循环结构概述
循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。
循环结构简单来说就是:循环是一次又一次的执行相同的代码块
C语言供了多种循环语句,可以组成各种不同形式的循环结构:
用goto语句和if语句构成循环;
用while语句;
用do-while语句;
用for语句;
2、构成循环结构的几个条件:
一般来说一个循环需要以下几部分构成:
1)循环控制条件 循环退出的主要依据,来控制循环到底什么时候退出
2)循环体 循环的过程中重复执行的代码段
3)能够让循环结束的语句(递增、递减、真、假等) 能够让循环条件为假的依据,否则退出循环
二、while循环介绍及基本格式
1、while循环的格式:
while ( 条件表达式 )
{
语句1;
语句2;
....
}
2、while循环使用方法:
1)while循环的特点:
如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行
2)while语句的语义是:
如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内 容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环
<span style="font-size:14px;">#include <stdio.h>
void test1(){
int i=1;
// 1)循环控制条件
while(i<=1000){
//2)循环体
printf("第%d次说:我爱你!\n",i);
//能够让循环控制条件为假
i = i+1;
}
}
void test2(){
//计算 1+2+3+.....+100 的和
//定义一个变量,存储当期执行的次数
int i=1,sum=0;
int n=0;
//假设从键盘上输入一个数,计算1+2+3+....+n 的和
printf("请输入一个数字:\n");
//从键盘上接受一个数
scanf("%d",&n);
while (i<=n) {
//用sum的值+i的值
sum = sum+i; //i = 1 sum = 1
//0+1, (0+1)+2
//让循环条件为假的控制
// i=i+1;
i++;
}
printf("1+2+3+....+%d=%d\n",n,sum);
}
int main(int argc, const char * argv[]) {
test1();
return 0;
}</span>
三、while循环使用注意
死循环的妙用:
死循环就是一直执行循环体中的代码,不会退出
比如:While(条件);
1)不知道要循环的次数的时候使用最佳,常常妙用死循环
2)在某个范围内查找满足条件的值
1、死循环:任何数值都真假性
while (-1)
{
printf("死循环\n");
}
2、当一个变量与一个常量进行== 或 != 的时候,通常把常量写在前面
int num = 3;
while (3 == num)
{
printf("num = %d\n",num);
num++;
}
3、while 后如果只有一条语句它可以省略大括号
1)空语句它也是一条语句
2)while小阔号后面不可以直接写分号
int num = 0;
while (num < 3);
{
printf("num = %d\n",num);
num++;
}
4、作用域:内部代码块中定义的变量不可以在外边代码块中访问
while (1 < 3)
{
int a = 0;
}
printf("a = %d\n",a);
5、作用域紊乱
while (1 < 3) int num = 5;
6、最简单死循环
while (1);
<span style="font-size:14px;">#include <stdio.h>
int main(int argc, const char * argv[]) {
//1、如果while只有一句话,这个时候可以省略大括号
//1+2+3+....+100 实现
int i=0,sum = 0;
// while (i<=100) {
// sum += i; //sum = sum+i;
// i++;
// }
//i = 100
// 1/2 0+2
// 5/6 +6
// 1+2+3+4+5
// 2+3+4+5+6
while (i++ < 100) sum+=i;
printf("%d\n",sum);
//2、while空语句问题,会造成死循环
// while (i<=3);
//
// {
// printf("i = %d\n",i);
// i++;
// }
return 0;
}</span>
四、do…while循环介绍及语法格式
1、do ... while循环的基本格式
while(条件)
{
语句块;
}
当型循环:当条件满足的时候,再去执行循环体
do
{
语句1;
语句2;
....
}
while ( 条件 );
直到型循环:先执行循环体,然后判断条件,直到条件为假就结束
2、do...while语句用法
1)do...while语句的语义是:
当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号 {}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再 次判断条件,重复上述过程,直到条件不成立就结束while循环
2)do-while循环的特点:
不管while中的条件是否成立,循环体中的语句至少会被执行一遍
int i=0; do
{
i++;
}
while(i<10);
<span style="font-size:14px;">#include <stdio.h>
int main(int argc, const char * argv[]) {
int i=1,sum=0;
//do while循环的使用
// do{
// printf("第%d次我爱你!\n",i);
// i++;
// }while (i<=1000);
//1+2+3+....+100
do{
//累加: 在上一次结果之上再加上某一个值
sum+=i;
i++;
}while (i<=100);
printf("sum = %d\n",sum);
return 0;
}</span>
五、for循环结构及执行过程
1、for循环的语法格式
C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循 环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。
一般形式:
for(表达式1;表达式2;表达式3)
{
语句;
}
2、for循环执行过程
(1) 先求解表达式1。
(2) 求解表达式2,若其值为真(值为非0),则执 行for语句中指定的内嵌语句,然后执行下 面 第(3)步。若为假(值为0),则结束循环,转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语
3、for循环使用
for语句常见的形式:
for(循环变量赋初值;循环条件;循环变量增值)
六、for循环的其他形式
1、for循环的其他形式
1)表达式省略(三个表达式都可以省略)
如:for(; ;) 语句相当于while(1) 语句,即不设初值,不判断条件(认为表达式2为真值),循环 变量不增值。无终止地执行循环体。
2)循环控制无关的任意表达式
表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达 式,中间用逗号间隔。如:
for(sum=0,i=1;i<=100;i++) sum=sum+i;
或
for(i=0,j=100;i<=j;i++,j--) k=i+j;
表达式1和表达式3都是逗号表达式,各包含两个赋值
表达式,即同时设两个初值,使两个变量增值.
在逗号表达式内按自左至右顺序求解,整个逗号表达式的值为其中最右边的表达式的值。
如:
for(i=1;i<=100;i++,i++) sum=sum+i;
相当于
for(i=1;i<=100;i=i+2) sum=sum+i;
七、break关键字及break语句break关键字
break和continue语句都可以用在循环中,用来跳出循环(结束循环);
break语句还可以用 在switch语句中,用来跳出switch语句。
break语句用法
break语句通常用在循环语句和开关语句中。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语 句,通常break语句总是与while语句联在一起,即满足条件时便跳出循环。
break用于跳出当前循环(结束当前循环)
break之后的语句就都不执行了
注意:
// if(表达式)else{ ...... break;......}
1)break语句对if-else的条件语句不起作用;
2)在多层循环中,一个break语句只向外跳一层。
<span style="font-size:14px;">#include <stdio.h>
void test1(){
//打印 1 2 3 4 5 。。。10的数
for(int j=0;j<5;j++){
//
if (j==3) {
break; //break的作用是 0 1 2 如果==3 不再循环行
}
for (int i=1; i<=10; i++) {
//break用于跳出当前的循环(结束当前的循环)
//break之后的语句也都不执行了
// 打印5行
// 1 2 3 4
if (i==5) {
break; //break的作用是 如果==5的时候,列循环停止
}
printf("%d\t",i);
}
printf("\n");
}
printf("\n");
}
int main(int argc, const char * argv[]) {
//计算r=1到r=10时的圆面积,直到面积area大于100为止。
float area = 0.0f;
for (int r=1; r<=10; r++) {
//计算面积
area = 3.14f*r*r;
if (area > 100) {
printf("半径 = %d,面积 = %.2f\n",r,area);
break;
}
}
return 0;
}</span>
八、continue关键字及continue语句
1、continue 语句
(结束本次循环,继续下次循环)
2、用法
continue语句的作用是跳过循环体中剩余的语句而继续下一次。
continue语句只用在 for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。
对比一下break和continue。
while的用法:
while(表达式1)
{
......
if(表达式2)
break;
......
}
continue的用法:
while(表达式1)
{
......
if(表达式2)
continue;
......
}
<span style="font-size:14px;">#include <stdio.h>
//continue的使用测试
void test1(){
//1 2 3 4 5 6 7 8 9 10
//continue 作用,结束本次循环的剩余的语句
// 继续下一次循环
//continue 可以加速循环的执行
for (int i = 1; i<=10; i++) {
if (i%3==0) {
continue;
}
printf("%d",i);
printf("*");
printf("#\t");
}
}
int main(int argc, const char * argv[]) {
//把100~200之间的不能被3整除的数输出
// i%3!=0
// i%3==0 continue;
for (int i=100; i<=200; i++) {
if (i%3==0) continue;
printf("%d\t",i);
}
printf("\n");
return 0;
}</span>
-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------