2017-02-23 59 views
-2

比方说,我有这样的代码:'继续'如何在'为'中,在另一个'为'?

for (...;...;...){ 
    for (...;...;...){ 
      if (...){ 
       ... 
       continue; 
       ... 
      } 
     } 
} 

(“...”是一些一段代码,没有真正的问题是什么)

当程序获取到‘继续’ ,它会回到外部还是内部?

+1

inner for loop。 –

回答

1

它看起来像以下方式

for (...;...;...){ 
    for (...;...;...){ 
      if (...){ 
       ... 
       goto continue; 
       ... 
      } 
     continue:; 
     } 
} 

按照C标准(6.8.6.2 continue语句)

2 continue语句导致跳转到循环延续部 最小封闭迭代语句;也就是循环体的末尾 。更准确地说,在每个语句的

while (/* ... */) 
{ 
    /* ... */ 
    continue; 
    /* ... */ 
    contin: ; 
} 

do 
{ 
    /* ... */ 
    continue; 
    /* ... */ 
    contin: ; 
} while (/* ... */); 

for (/* ... */) 
{ 
    /* ... */ 
    continue; 
    /* ... */ 
    contin: ; 
} 

除非所示的继续语句是在一个封闭的迭代 声明(在这种情况下它是语句中解释),它 相当于转到CONTIN ;。

+0

所以如果还有一个'for'它会去最外面的一个?或者你的意思是程序继续写在'继续'的地方吗? –

+0

@AniaZdanowicz查看我更新的帖子。 –

+0

好的,谢谢! –

2

内在的一个。它总是最内层的循环。许多语言给你一个像“休息2”/“继续2”的方式来跳转两个层次,并继续与外部。

+0

因此,继续你去'while'或'for'的顶部,那'与你最接近','最内部'可以是? –

+1

最接近你的是,完全是。你可以从“继续”开始向上走,你打的第一个循环就是跳跃的位置。 – dkellner

+0

非常感谢你! –

相关问题