阅读下面程序 import javax.swing.JOptionPane; public class BreakLabelTest{public static void main (String args[]){ String output=" "; stop:{ for(int row=1;row<10;row++){for(int column=1;column<=5;column++){ if(row=5)break stop; output+=" * "; } output+=" \n ";} output+="\nLoops terminated normally"; } JOptionPane.showMessageDialog( null,output,"用一个标志测试break语句”, JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } 程序运行结果是【 】
A.窗口中有5行*****
B.窗口中有5行****
C.窗口中有4行*****
D.窗口中有6行*****
参考答案:C
解析:break语句最常用的用法是在switch语句中,此外,还可以用break语句退出循环。break语句的另外一个作用就是提供一个“标签化中断”的语句,可以让程序退出任意的嵌套的花括号{}中的代码块。 题目中的程序主体是一个二重for循环的嵌套,并且用花括号<)括住了一个代码块,同时在花括号之间加了一个标签“stop”。循环体内,当满足条件“row==5”时,执行语句“break stop”,即跳出stop所指定的代码块,;并从紧跟该块的第一条语句处开始执行。 下面就分析二重for循环的执行。外层for语句的循环变量是row,范围是1到10。内层for循环,当row不等于5时,在字符串output后面连接五个“*”。内层循环结束后,再在output的后面加一个换行符“/n”。然后再返回到外层for循环执行,即把row的值加1。当row不等于5时,仍然在字符串output后面连接五个“*”和一个换行符“/n”。当row的值为5时,执行break stop语句,就跳出stop所指定的代码块,执行JOPtionPane.showMessageDialog语句。经过上述分析可知,内层循环在字符串output后面连接五个“*”和一个换行符“/n”的操作一共进行了四次,因此,后面输出output结果时是四行“* * * * *”。因此,本题的正确答案是C。