黑马程序员技术交流社区
标题:
C语言--for循环的使用
[打印本页]
作者:
Jack-xie
时间:
2014-10-17 09:18
标题:
C语言--for循环的使用
1、for循环
C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于 循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。
一般形式:
for(表达式1;表达式2;表达式3) 语句;
1)for语句的执行过程:
(1) 先求解表达式1。
(2) 求解表达式2,若其值为真(值为非0),则执 行for语句中指定的内嵌语句,然后执行下 面 第(3)步。若为假(值为0),则结束循环,转到第(5)步。
(3) 求解表达式3。
(4) 转回上面第(2)步骤继续执行。
(5) 循环结束,执行for语句下面的一个语
2)for语句最简单的形式:
for(循环变量赋初值;循环条件;循环变量增值)
例如: for(int i=1;i<=100;i++) sum=sum+i;
3)表达式省略(三个表达式都可以省略)
如:for(; ;) 语句相当于while(1) 语句,即不设初值,不判断条件(认为表达式2为真值),循环变量 不增值。无终止地执行循环体。
4)循环控制无关的任意表达式 表达式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;
2、for循环的嵌套
for 嵌套循环
嵌套循环在一般情况下,只有2层嵌套循环。不会超出3层。
3、9*9乘法表打印方法
/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
/*
//双重的for循环
for (int i=1; i<=9; i++) {
for (int j=1; j<=i; j++) {
printf("%d*%d=%d ",j,i,j*i);
}
printf("\n");
}
*/
//打印9*9乘法口诀表
#include <stdio.h>
int main(int argc, const char * argv[]) {
for (int i=1; i<=9; i++) {
for (int j=1; j<=i; j++) {
printf("%d*%d=%d ",j,i,j*i);
}
printf("\n");
}
return 0;
}
4、break和continue
break和continue语句都可以用在循环中,用来跳出循环(结束循环);break语句还可以用在 switch语句中,用来跳出switch语句。
break语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出 switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。
注意:
// if(表达式)else{ ...... break;......}
1)break语句对if-else的条件语句不起作用;
2)在多层循环中,一个break语句只向外跳一层。
continue 语句(结束本次循环,继续下次循环)
continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。
对比一下break和continue。
while的用法:
while(表达式1){
......
if(表达式2) break;
......
}
continue的用法:
while(表达式1){
......
if(表达式2) continue;
......
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2