关于java循环终止break&continue

关于java循环终止break&continue

前面的文章中我们了解了循环的几种类型,本篇文章中我们来了解一下循环的终止,相对前面的文章来说比较易懂

break

  • break我们在选择结构中有了解到,switch中,每个case后都要跟一个break。
  • break在任何循环的主体部分,均可用break控制循环流程。
  • break用于强制退出循环,不执行循环中剩余的语句。

我们下面用while循环来举例说明:

public class Demo
{
    public static void main(String[] args)
    {
        int a =0;
        
        while(a<100)
        {
            a++;
            System.out.println(a);
            if(a==20)
            {
                break;
            }
        }
    }
}

我们执行一下上面的代码,就可以看到以下的运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

进程结束......

我们发现,如果a循环到20的时候,满足条件,进入到了if判断里面,所以执行了break,终止了循环,输出的结果就到20结束了。

continue

  • continue也是终止循环的一种,但是和break不一样!
  • continue用于终止某一次的循环
  • 跳过循环体中尚未执行的语句,接着进行下次循环的判断,判定结果为true还是会进入循环。

我们还是用while循环来实现一下,比如,我们不想输出1-100内,除以10没有余数的数字。

public class Demo
{
    public static void main(String[] args)
    {
        int a =0;
        
        while(a<100)
        {
            a++;
            if(a%10==0)
            {
                System.out.print("\n");//如果符合,换行,跳过本次循环
                continue;
            }
            System.out.println(a+"\t");
        }
    }
}

我们执行一下上面的代码,就可以看到以下的运行结果

1	2	3	4	5	6	7	8	9	
11	12	13	14	15	16	17	18	19	
21	22	23	24	25	26	27	28	29	
31	32	33	34	35	36	37	38	39	
41	42	43	44	45	46	47	48	49	
51	52	53	54	55	56	57	58	59	
61	62	63	64	65	66	67	68	69	
71	72	73	74	75	76	77	78	79	
81	82	83	84	85	86	87	88	89	
91	92	93	94	95	96	97	98	99	

进程结束......

我们可以发现,像10,20,30等,都被跳过了,但是仍然在往下执行。

goto

  • goto在这里只是介绍,了解这个东西就行,不用深入研究。
  • goto关键字很早就在程序设计语言中出现,尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用。
  • java中没有goto。
  • 在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子—带标签的break和continue
  • 标签是指,后边跟一个冒号的标识符,比如outer:(自定义名字)。
  • 对java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是: 我们希望在其中嵌套另个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

我们来实战一下

public class Demo {
    public static void main(String[] args) {
        //找到101-150之间的质数

        //质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
        int count=0;

        outer:for (int i=101;i<150;i++) //outer就是标签
                {
                for (int j=2;j<i/2;j++)
                {
                    if (i%j==0)
                    {
                        continue outer;//循环到标签位置
                    }
                }
                System.out.print(i+" ");
            }

    }
}

我们执行一下上面的代码,就可以看到以下的运行结果

101 103 107 109 113 127 131 137 139 149 

进程结束.......

拓展Debug

  • 这个就是我们上一篇文章中说到的断点跟踪

关于java循环结构for

  • 我们平时一定要养成编译Debug的习惯。
  • 可以更好的看代码的走向,数据的走向等等。

你可能感兴趣的:(java,python,开发语言)