这只是一个嵌套的For Loop吗?

时间:2013-11-02 22:58:55

标签: c

前几天看到这段代码:

for(i=0; i<r1; ++i)
for(j=0; j<r1; ++j)
for(k=0; k<r1; ++k){
    mult[i][j] += a[i][k] * b[k][j];
}

现在,这只是一种不同的写作方式:

for(i=0; i<r1; ++i){
    for(j=0; j<r1; ++j){
        for(k=0; k<r1; ++k){
            mult[i][j] += a[i][k] * b[k][j];
        }
    }
}

2 个答案:

答案 0 :(得分:2)

是的,这是正确的。在第一个实现中放置括号以便自己查看。

PS - 没有一种正确的方法..但我强烈建议总是使用括号(特别是如果你是编程新手)。

帮助您理解和调试代码

还有很长的路要走

答案 1 :(得分:1)

是。 for的语法是

for (init-statement; condition; iteration_expression)
    statement

for本身就是一种陈述。因此它可以制作递归复合物。


你甚至可以放弃最后{}

for(i=0; i<r1; ++i)
  for(j=0; j<r1; ++j)
    for(k=0; k<r1; ++k)
      mult[i][j] += a[i][k] * b[k][j];

缩进对于使代码可读非常重要。