不带标号的continue就是结束这一步的循环,进行下一步的循环,不过在这个程序里一旦column>row,就continue,不会再执行drawString,所以看起来continue带不带标号结果是一样的,但是带标号的话会直接跳到两层循环外然后继续,而不带标号的话仍然继续内层循环,只不过在其中没有执行什么有效操作,从效率上讲带标号的要好还有程序是都会终止的,不过如果没有continue,画出来就是一个矩形了

解决方案 »

  1.   

    与 Januarius_(要考研了:() 的看法相同
      

  2.   

    1、有标签的话:当column>row,就跳到nextRow这里了,
    (由于标签的特殊语法,row值不会被重新赋值,也就是for(int row=1;row<=5;row++)中 int row=1不会执行,而会直接进入循环,但是内层的column还是重新开始循环,这两个不同。这个你可以测试一下)这样带标签的输出结果就不难理解了。
    2、不带标签的话:当column>row时,continue表示会退到内层循环的开头,并继续执行。column继续增加,当然因为已经有column>row了,后面运行就没有意义了,直至column=10后,内层循环退出,外层循环再继续。这样跟带标签的就一样了,只不过如果不带标签,这里可以看到内层循环每次要多执行几次,效率要低些。
    3、没有continue或者把continue放在循环尾效果一样,因为continue表示结束本次循环,回到循环起始处,继续下次循环。至于你问的“在没有continue的情况下程序只有在列大与行数的情况下才终止循环,是这样么?”听不懂你的意思,不过你仔细看看你的程序,因为有row<=5和column<=10,循环肯定都会结束的。另外有if(column>row),这才是打印的条件,与前面的程序就刚好相反了,自然输出不一样了。
    初学者不要太急噪,程序都是有流程的,一步步的分析,不要凭空猜想。其实我也很菜^-^