------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------
1、循环控制
循环是程序语句的一种结构:当条件满足的时候,一直重复执行某一段代码。当条件不满足的时候,需要退出循环。正常情况下,构成循环结构的三要素:
1)循环结束的条件
2)循环体 ";"3) 有一个操作可以让循环条件为假
2、while循环(当型循环: 当 ......满足时候,然后......)格式:
while(表达式){语句块;
}
先计算表达式的值,如果表达式的值非0(也就是真),就会执行语句块。
执行完语句块以后,继续计算表达式的值,如果表达式的值非0(也就是真),再继续执行语句块......当表达式的值为0(也就是假)的时候,循环结束。
注意:
1)死循环:while(-1);2)作用域的紊乱的问题
while(a<20){
int num=5;
}
printf("%d",num); //错误的
3) 当循环体只有一句语句时,可以省略大括号。
3、dowhile循环(直到型循环: ......直到条件为假)格式:
do{语句块;
}while(表达式);
程序先执行语句块,然后再计算表达式的值,如果表达式的值非0(真),再去执行语句块,执行完语句块以后再计算表达式的值,如果如果表达式的值非0(真)......直到执行完了以后发现表达式的值为0,此时退出循环。
注意:
1)当首次执行表达式为真的时候,执行的结果和while一样。2)当首次执行表达式为假的时候,while执行循环体0次,但是dowhile会执行一次。
4、for循环(当型循环)格式:
for(表达式1;表达式2;表达式3){语句块;
}
注意:
1)表达式1只会被执行1次。
2)当循环体语句只有一句代码,可以省略大括号。
3)形式一:
int i=0;
for(;i<100;i++){
//语句块
}
4)形式二:
int i=0;
for(;i<100;){
i++;
//语句块
}
5)形式三:
int i=0;
for(;;){
if(i<100){break;}
i++;
//语句块
}
6)for的死循环
for(;;){
//语句块
} //这是for的死循环
5、for循环的嵌套
for(int i=0;i<3;i++){
for(int j=0; j<5; j++){
printf("*");
}
} //打印出三行五列的 *
注意:
1)i的值每变化一次,j从0开始到5循环一次。
2)双重循环:外层控制行数,里层控制列数。
6、break和continue的使用
1)break和continue都是关键字2)break用在两个地方:
(1)用在switch中
switch(n){
case 1: printf("xxxx");
break; //表示结束switch语句
}
(2)用在循环中
while(1){
if(i==5){
break; //结束循环
}
}
3)continue 表示结束本次循环,继续下一次循环(3)如果不在循环中使用,在if语句中使用break是没有作用的。
假如循环要执行100次,如果第5次循环的时候遇到了continue,continue余下部分不执行,循环直接从第6次继续执行。
例题,输出100~200之间不能被3整除的数。
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;
}
continue可以加快循环进度。