for循环有点问题不懂,求达人解答。麻烦用自己的话说的通俗点。
发布网友
发布时间:2022-08-16 03:42
我来回答
共2个回答
热心网友
时间:2023-09-28 13:42
因为你用了省略号,不知道你的程序究竟什么样子,这个省略号的内容非常关键,下面分两种情况,只以两层为例子进行说明,希望对你有帮助。
第一种方法,嵌套,我用{}把循环体套起来:
for(col=1;col<=M.nu;++col)
{
for(t=1;t<=M.tu;++t) {语句;}
}
如果循环体里面只有一个语句,是可以不用{}的,但是用了不会错,用了能更容易理解。上面这样的程序,其实可以省略{},和下面的代码完全等价:
for(col=1;col<=M.nu;++col) for(t=1;t<=M.tu;++t) 语句;
我写在一行上了,其实三行也是完全等价,不过那样更不好看明白。但是这段程序执行过程就是嵌套,就是里面的外面的循环每执行一步,里面的循环就要走完整一圈,循环体里面的语句总共执行的次数是M.nu*M.tu。
第二种方式,并行:
for(col=1;col<=M.nu;++col) 语句1;
for(t=1;t<=M.tu;++t) 语句2;
这样的写法就很简单,语句1执行M.nu次,然后语句2执行M.nu次,是各自循环完毕。
三个循环的执行方式和上面两个的类似,有嵌套和顺序两种,嵌套的外循环执行一步内循环就走一圈,外循环只走一圈,但是内循环要走许多圈。顺序就是前面的循环走满一圈之后,下面的循环再走自己的圈,两个循环各不相关。追问也就是说第2种方式里面,语句1没有的话,再去掉;就是嵌套了?那如果只是去掉;还有语句1呢?
追答是的,第二种方式去掉语句1就成为嵌套了,不过如果保留了分号,那就没有嵌套,而是第一个循环是空循环。
热心网友
时间:2023-09-28 13:43
代码没有发清楚 一般来说 你发的情况应该有两种 并列或者嵌套