黑马程序员技术交流社区

标题: 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