使用break语句退出循环

使用break语句可以跳过循环体的其余代码和循环的条件测试,强迫循环立即退出。当在某个循环内部遇到break语句时,循环终止,程序控制流转移至循环后面的语句。下面是一个简单示例:
    public static void main(String[] args) throws java.io.IOException
    {
        int num = 100;
        //loop while i-squared is less than num
        for(int i = 0; i < num; i++)
        {
            if(i*i >= num) break;
            System.out.print(i+" ");
        }
        System.out.print("Loop complete");
    }
输出如下所示:
0 1 2 3 4 5 6 7 8 9 Loop complete
如你所见,尽管这是一个用于运行从0到num的for循环,但是break语句会使循环在i的平方大于等于num时提前终止。
break语句可以用于Java的任何循环中,包括有意设置的无限循环。例如,下面的程序一直读取输入,直到用户键入字母q为止:
    public static void main(String[] args) throws java.io.IOException
    {
        char ch;
        
        for(;;)
        {
            ch = (char)System.in.read();
            if(ch == 'q') break;
        }
        System.out.println("done");
    }
在嵌套循环中使用break语句时,结束的只是最内部的循环,例如:
    public static void main(String[] args) throws java.io.IOException
    {
        for(int i=0;i<3;i++)
        {
            System.out.println("outer loop count:"+i);
            System.out.print("Inner loop count:");
            
            int t = 0;
            while(t < 100)
            {
                if(t == 10) break;
                System.out.print(t+" ");
                t++;
            }
            System.out.println("");
        }
    }
输出:
outer loop count:0
Inner loop count:0 1 2 3 4 5 6 7 8 9
outer loop count:1
Inner loop count:0 1 2 3 4 5 6 7 8 9
outer loop count:2
Inner loop count:0 1 2 3 4 5 6 7 8 9
如你所见,内部循环的break语句只能使内部循环终止,外部循环不受影响。
关于break语句还有两点需要记住,第一,一个循环可以出现多个break语句。然而要小心,太多的break语句会破坏代码结构。第二,结束switch语句的break语句只影响switch语句,而不影响外层的循环。