java中break和continue的区别详解(附源码)

序言

在自己学习java语言的过程中,很容易把breakcontinue的用法混淆。为了便于以后快速查阅及温习,在此特留学习笔记一份。

简述

在任何迭代语句的主体部分,都可以用breakcontinue控制循环的流程。其中,break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前迭代,然后退回循环起始处,开始下一次迭代。

源码

下面这个程序向大家展示了breakcontinueforwhile循环中的例子:

package com.mufeng.thefourthchapter;

public class BreakAndContinue {
	public static void main(String[] args) {
		for (int i = 0; i < 100; i++) {
			if (i == 74) {// Out of for loop
				break;
			}

			if (i % 9 != 0) {// Next iteration
				continue;
			}
			System.out.print(i + " ");
		}
		System.out.println();

		int i = 0;
		while (true) {
			i++;
			int j = i * 27;
			if (j == 1269) {// Out of loop
				break;
			}

			if (i % 10 != 0) {// Top of loop
				continue;
			}
			System.out.print(i + " ");
		}
	}

}

输出结果

0 9 18 27 36 45 54 63 72
10 20 30 40 

源码解析

在这个for循环中,i的值永远不会达到100,因为一旦i到达74break语句就会中断循环。通常,只有在不知道中断条件何时满足时,才需要这样使用break。只要i不能被9整除,continue语句就会使执行过程返回到循环的最开头(这使i值递增)。如果能够整除,则将值显示出来。输出结果之所以显示0,是由于0%9等于0

最后,可以看到一个“无穷while循环”的情况。然而,循环内部有一个break语句,可中止循环。除此之外,大家还会看到continue语句执行序列移回到循环的开头,而没有去完成continue语句之后的所用内容。(只有在i能被10整除时才打印出值。)

时间: 2024-08-02 06:59:28

java中break和continue的区别详解(附源码)的相关文章

Java中的==和equals的区别详解

1.基础知识 (1)String x = "hello"; (2)String x = new String ("hello"); 第1种方式的工作机制是,首先看内存中有没有存放值为"hello"的地址,如果有则将x指向这块内存地址:如果没有则在内存中重新开辟一块地址存放值"hello",并将x指向这块内存地址. String x = "hello"; String y = "hello"

java 中break与continue的区别

break 终止整个循环 for(int i=0;i<arr.length ;i++){ for(int j=0;j<arr[i].length;j++){ System.out.println("i="+i+",j="+j); if(arr[i][j]==5){ break; } } } 如上 里层循环将会被终止,如果将break放到外层循环体内,则外层循环体将被终止. continue 终止当前循环内代码的执行.示例代码如下: for(int i=0

Java中Vector与ArrayList的区别详解

首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复.3个具体实现类的相关区别如下:1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组

struts2内置拦截器和自定义拦截器详解(附源码)

一.Struts2内置拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特 性.这些内置的拦截器在struts-default.xml中配置.只有配置了拦截器,拦截器才可以正常的工作和运行.Struts 2已经为您提供丰富多样的,功能齐全的拦截器实现.大家可以至struts2的jar包内的struts-default.xml查看关于默认的拦截器与 拦截器链的配置.内置拦截器虽然在struts2中都定义了,但是并不是都起作用的.因为并不是所有拦截器都被加

转载—— android 瀑布流的实现详解,附源码

介绍 参考自:https://github.com/dodola/android_waterfall,因为原来的代码封装不好,所以,我根据源码的思路,重新写了一遍,所以有了现在这个项目:https://github.com/youxilua/waterfall4android 原作者表示: 试过在1万张可以流畅的滑动,不出现内存溢出情况 设计思路 之前的作者的自定义view 只有主滑动一层,其他的设置要在相应的活动设置,个人觉得,重用起来比较麻烦,所以决定封装一层.现在定义一个默认的瀑布流只需5

java中break和continue跳出指定循环(转载)

java中break和continue跳出指定循环 java中break和continue可以跳出指定循环,break和continue之后不加任何循环名则默认跳出其所在的循环,在其后加指定循环名,则可以跳出该指定循环(指定循环一般为循环嵌套的外循环). break跳出指定循环示例代码: loop1:for(int x = 0; x < 4; x++) { loop2:for (int y = 0; y < 5 ; y++ ) { System.out.println("x=&quo

循环语句中break 与 continue的区别

循环语句中break 与 continue的区别 总结: 1 break; while循环break是用于永久终止循环.即不执行本次循环中break后面的语句,直接跳出循环. 2continue; while循环continue是用于终止本次循环.即本次循环中continue后面的代码不执行,进行下一次循环的入口判断. #include<stdio.h> //break; int main() { int i = 0; while (i <= 10) { if (i == 5) brea

PHP中include和require的区别详解

1.概要  require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句).这就意味着如果可能执行多次的代码,则使用require()效率比较高.另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句. require的使用方法如:require("myfil

Java中堆内存和栈内存详解2

Java中堆内存和栈内存详解 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用. 堆内存用于存放由new创建的对象和数组.在堆中分配的内存,由java虚拟机自动垃圾回收器来管理.在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的