黑马程序员技术交流社区

标题: 欢迎大神点评:ios0727分析题解析 [打印本页]

作者: 白月光    时间: 2014-5-22 13:07
标题: 欢迎大神点评:ios0727分析题解析
本帖最后由 白月光 于 2014-5-31 12:03 编辑
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     for (int i = 0; i<5; i++) {
  5.         for (int j = 0; j<5; j++) {
  6.             printf("i=%d, j=%d\n", i, j);
  7.             if (j == 1) {
  8.                 break;
  9.             }
  10.         }
  11.         if (i == 2) {
  12.             break;
  13.         }
  14.     }
  15.     return 0;
  16. }
复制代码
分析:先要明白for嵌套运行的先后及break何时运行
第一步:外层for循环(我简称外for),先运行 i=0;
第二步:运行外for循环,在此外for循环的循环体为嵌套的for循环(我简称为内for),同样先运行 j=0,输出 i=0,j=0,接着判断 j!=1;
第三步:继续运行内for,j++=1,输出 i=0,j=1,接着判断 j==1,此时运行break,跳出内for循环,外for循环体运行结束,外for下if条件i!=2;
第四步:运行外for循环体 i++=1,i<5,重新运行内for,输出 i=1,j=0,判断 j!=1,;
第五步:继续运行内for,j++=1,输出 i=1,j=1,接着判断 j==1,此时运行break,跳出内for循环,外for循环体运行结束,外for下if条件i!=2;
第六步:运行外for循环体 i++=2,i<5,第三次重新运行内for,输出 i=2,j=0,判断 j!=1,;
第七步:继续运行内for,j++=1,输出 i=2,j=1,接着判断 j==1,此时运行break,跳出内for循环,外for循环体运行结束,外for下if条件 i==2,运行break;
第八步:整个循环结束
所以结果为
i=0,j=0
i=0,j=1
i=1,j=0
i=1,j=1
i=2,j=0
i=2,j=1


作者: 奇迹    时间: 2014-5-22 15:16
大神。。。。
作者: 傘が咲く    时间: 2014-5-22 16:15
分析的不错~
作者: 白月光    时间: 2014-5-23 00:44
傘が咲く 发表于 2014-5-22 16:15
分析的不错~

谢谢鼓励,继续努力ing。。。。
作者: a1130003724    时间: 2014-5-23 01:11
分析 不错    来学习学习
作者: 白月光    时间: 2014-5-23 01:16
a1130003724 发表于 2014-5-23 01:11
分析 不错    来学习学习

谢谢鼓励,以后会更加努力的
作者: 詹绪长    时间: 2014-5-23 05:48
来学习一下{:3_53:}
作者: 子城伯涵    时间: 2014-5-23 08:38
进来学习
作者: S捭K阖Y    时间: 2014-5-26 00:32
支持一下




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