黑马程序员技术交流社区

标题: 循环讲解 [打印本页]

作者: pingfan183    时间: 2014-11-5 19:38
标题: 循环讲解
1、循环控制

     循环是程序语句的一种结构,当条件满足的时候,一直重复执行某一段代码
     当条件不满足的时候,需要退出循环

     正常情况下,够成循环结构三个要素:
     1)循环结束的条件
     2)得有循环体      ";"
     3) 有一个操作可以让循环条件为假

2、while循环(当型循环:  当 .....满足时候,然后....)

     格式:

     while(表达式){

          语句块;
     }

     计算机首先计算表达式的值,如果表达式的值非0(也就是真),会去执行语句块
     执行完语句块以后,继续计算表达式的值,如果表达式的值非0(也就是真),再继续执行语句块....... 当表达式的值为0(也就是假)的时候,循环结束

     注意:
     1)死循环的问题
     while(1);
     int i=1;
     while(i++&&i<=100)sum+=i;

     2)作用域
     while(a<10){
          int num=10;
     }
     printf("%d",num);(错误的)

     3)作用域的紊乱的问题
     while(i<10) int num=10; (错误的)

     4) 当循环体只有一句语句的时候,是可以省略大括号的

3、dowhile循环(直到型循环: .......直到条件为假)

     格式:
        do{
            语句块;
        }while(表达式);

     表述:
     程序先执行语句块,然后再计算表达式的值,如果表达式的值非0(真),再去执行语句块,执行完语句块以后再计算表达式的值,如果如果表达式的值非0(真)........... 直到执行完了以后,发现表达式的值为0,退出循环

     注意:
     1)当首次执行表达式为真的时候,执行的结果和while一样
     2)当首次执行表达式为假的时候,while执行循环体0次,但是dowhile会执行一次

4、for循环(当型循环)

    格式:
    for(int i=0;i<100;i++){
        语句块;
    }


    注意;
    1)int i=0;只会被执行1次
    2)当循环体语句只有一句代码,可以省略大括号
    3)OC的格式:for(NSString *name in arr){NSLog(@"%@",name);}
               //foreach(    )
    4)形式一:int i=0;   for(;i<100;i++){}
    5)形式二:int i=0;   for(;i<100;){         i++;}
    6)形式三: int i=0;   for(;;){   if(i<100){  break;}     i++;}
    7)for的死循环  for(;;){   } 这是for的死循环

5、for循环的嵌套

    for循环的嵌套:

    for(int k=0;k<5;k++){

        for(int i=0;i<5;i++){  //一行 *

              printf("* ");
        }
    }

    注意:
    1)k的值每变化一次,i从0开始到4循环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)如果不在循环中 if语句中使用break是没有作用的

    3)continue 表示结束本次循环,继续下一次循环

       假如循环要执行100次,如果第5次循环的时候遇到了continue,第5次的余下部分不执行了,循环从第6次继续执行


作者: wangxinwei    时间: 2014-11-7 18:58
不错呦。。。
作者: 易拉罐    时间: 2014-11-8 10:56
总结的不错,顺便也学习了一下。
作者: ch8898163    时间: 2014-11-9 10:48
写的不错,总结挺深刻
作者: jinzhinan    时间: 2014-11-9 14:42
学习学习~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2