2013-10-13 158 views
1

我已经搜索过,可以找到解决类似问题的问题,但没有为这个特定的问题和语言。在阅读了一些Q & A而没有找到答案后,我搜索了,并得到零结果。这将继续导致嵌套for循环做什么?

我一直在问这个问题,在一所大学测验:

如果我有:

int n = 3; 
    for (int i = 1; i <= n; i++) { 
     System.out.print(" x "); 
     for (int j = 1; j <= n; j++) { 
     System.out.println(" x "); 
      continue; 
      //no content here 
     } 
    } 

而不存在continue语句后的任何内容;这如何使用continue影响此循环?它是否会导致循环继续迭代的第二个循环中断?

+2

没有把一个'continue'这样的感觉。删除它会给你同样的行为。基本上,它用于继续迭代电流回路,而不进一步移动。 –

+0

http://stackoverflow.com/questions/389741/continue-keyword-in-java –

+0

@RohitJain我被问过这个问题的大学,我很困惑,为什么它会放在那里;因为我想尽可能多的 –

回答

2

如果在继续下有一个代码,它将是一个死代码。如果没有continue;,循环将继续。

这两个代码块具有相同的效果:

for(int i=0; i < 10; i++) { 
    //Code 
} 

for(int i=0; i < 10; i++) { 
    //Code 
    continue; 
} 
+1

谢谢你,你完全回答了我的问题。简单,简洁和准确 –

3

A continue没有标签的语句将从条件最内层的while或do,或者循环,以及从更新表达式的最内层for循环重新执行。它通常用于提前终止循环的处理,从而避免深层嵌套的if语句。

因此,对于您的程序,关键作品continue没有多大意义。它被用作一种逃避的东西。对于e.g:

aLoopName: for (;;) { 
    // ... 
    while (someCondition) 
    // ... 
    if (otherCondition) 
     continue aLoopName; 

说,如果你修改你的程序,如:

int n = 3; 
    for (int i = 1; i <= n; i++) { 
     System.out.print(" x "); 
     for (int j = 1; j <= n; j++) { 
     if(j%2!=0) 
     { 
      System.out.println(" x "); 
      continue; 
     } 
     else 
     break; 
    } 

这将打破 for循环J = 2。希望你能理解。 :)

+0

你没有回答我的问题,专门解决了没有'if'或'while'的嵌套for循环,是的,我明白这一点。我不明白的是为什么你在回答中使用'while'和'if' –

+0

你的问题看起来很模糊。置于inner for循环中的'continue'关键字没有意义。即使你删除了关键字,它也不会产生任何影响。理解如何以及何时使用“继续”更好,而不是随意随地使用它。 – user2339071

+0

它不是模糊的,它很简单明了,只是因为它在代码中是多余的,并不意味着它是模糊的 –

2

的回答你的问题:

这将如何使用继续影响这个循环?它是否会导致循环继续迭代的第二个循环中断?

是:

第二循环不会打破,它将继续进行迭代。 break关键字是打破循环。

编辑

假设你有for循环:

for(int i = 0; i < 5; i++){ 
    continue; 
} 

在执行for环(i++)的声明,继续下一次迭代continue

在其他循环中,while{}do{}while();事情不会像这样,并可能导致无限循环。