嵌套循环?

1 language-agnostic for-loop

我是计算机科学专业的学生.但我编码不多.For循环对我来说非常简单,如果它是嵌套for循环,我的头开始旋转.

告诉我如何掌握嵌套for循环.我应该从哪里开始练习?

一旦我的班级工作人员告诉我们任何使用较少for循环的应用程序是最有效的.那是真的吗?

建议我任何bookpaper on for loopslinks!!

deceze:How about you give us an example nested loop and tell us what you don't understand about it?

我无法完全解释它.每当我开始想到一个需要2个循环(嵌套)的函数时,第二次迭代就会顺利进行.之后如果我在内循环中添加任何其他计算,在一秒之后它全部消失了.我无法继续.所以,然后我必须在PC中运行循环作为较小的循环,然后我将其构建为功能完备的循环.

好的,离开我. What you all do, i mean, how you start if you have to build a function which needs more than 2 nested for loops.

irr*_*ant 5

Suggest me any book or paper on for loops or links!!

为了巩固你对2 for循环的理解,你可以尝试在http://www.codingbat.com/java上练习- 此外,还有即时和(大部分)彻底的评分!String-3或Array-3问题可以使用2 for循环.

如果您有一个2D数组,并且需要访问所有索引,则可以使用2 for循环.因此,类似地,如果您有3D数组,则可以使用3个嵌套循环.请记住,循环内部在外部之前结束 - 因此,如果您有2个循环,则内部代码将循环内部循环指定的时间量,以及外部循环指定的次数.你可以绘制一个图表:

for(int i = 0; i < 2; i++) {
  for(int j = 0; j < 2; j++) {
    for(int k = 0; k < 2; k++) {
      //do something
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

视觉表现:

i:      0-----------1
        |           |
j:   0-----1     0-----1
     |     |     |     |
k: 0---1 0---1 0---1 0---1
Run Code Online (Sandbox Code Playgroud)

如果我分配信件:

i:      A-----------B
        |           |
j:   C-----D     E-----F
     |     |     |     |
k: G---H I---J K---L M---N
Run Code Online (Sandbox Code Playgroud)

X1是X的第一部分(嵌套for循环之前),X2是第二部分(嵌套for循环之后),执行顺序为:

A1,C1,G,H,C2,D1,I,J,D2,A2,B1,E1,K,L,E2,F1,M,N,F2,B2

因此,当您查看循环时,您不需要拍摄n维数组.

一旦我的班级工作人员告诉我们任何使用较少for循环的应用程序是最有效的.那是真的吗?

如果你的for循环涉及计算一个像公式一样的值,那么将东西插入公式会更快,也可能更有效.但通常最慢的Big O算法会最大程度地影响程序的效率 - 因此依赖于n(作为其停止条件)的独立for循环如果它还嵌套了依赖于的循环,则不会减慢程序的速度.n.