break和continue的区别

来源:互联网 发布:四川知周科技有限公司 编辑:程序博客网 时间:2024/04/29 22:02
break和continue的区别如下: 1. break可用于switch语句,表示跳出整个switch块,而continue则不能用于switch语句 2. 它们都可用于循环语句的循环体,所谓的区别也应该是它们对循环次数的影响不同。break用于立即退出当前循环,而continue仅跳过当次循环(本次循环体内不执行continue语句后的其它语句,但下次循环还会执行)。举例说明。 int i; int s = 0; for (int i = 1; i <= 10; i++) { if (i == 6) break; s += i; } 上面的循环会因为break语句而在i=6时提前终止,这样s的最终值就是1+2+3+4+5 如将break换成continue int i; int s = 0; for (int i = 1; i <= 10; i++) { if (i == 6) continue; s += i; } 当i=6时就不会将i累加到s中,s的最终值是1+2+3+4+5+7+8+9+10,唯独少一个6 在一具循环体中,如果用break返回, 则不管其后面是否有满足for中条件的情况,都不做for中的循环体,即不会做; 如果用continue返回,如果条件满足执行continue, 跳出下面语句的执行,而返回到for 语句的开头,再次判断for中的条件,从而根据条件执行其中的循环体内容。简单地说,比如这样一个程序: for(...) { ... continue/break; ... } System.out.prinln("a"); continue表示立即去执行“for(...)”这行代码,break表示立即去执行“System.out.prinln("a");”这行代码。我随手写了一段程序,你看看可能能帮助你理解。 public class BreakTest { public static void main(String args[]) { System.out.println("循环没有开始"); System.out.println("现在开始测试continue"); for (int i = 0; i < 3; i++) { System.out.println("开始第" + i + "次for循环"); if (i == 1) { continue; } System.out.println("看看continue后这里执行了吗?"); } System.out.println("continue测试完毕/n***********************"); System.out.println("现在开始测试break"); for (int i = 0; i < 3; i++) { System.out.println("开始第" + i + "次for循环"); if (i == 1){ break; } System.out.println("看看break后这里执行了吗?"); } System.out.println("break测试完毕/n***********************"); } }1. break 与 continue 加标签用法在Java语句里,唯一能放标签的地方是在循环语句前面。而且循环语句跟标签之间不能有任何东西。label1:outer-iteration { inner-iteration { //... break; // 1 //... continue; // 2 //... continue label1; // 3 //... break label1; // 4 }}案例1会中断内部循环。2会中断内部当前循环,直接跳入下一轮循环。案例3中断内部和外部循环,跳到label1,从外部开头重新开始循环。案例4跳到label1,且不在进入循环。下面举例:public class LabeledFor { static Test monitor = new Test(); public static void main(String[] args) { int i = 0; outer: // Can't have statements here for(; true ;) { // infinite loop inner: // Can't have statements here for(; i < 10; i++) { System.out.println('i = ' + i); if(i == 2) { System.out.println('continue'); continue; } if(i == 3) { System.out.println('break'); i++; // Otherwise i never // gets incremented. break; } if(i == 7) { System.out.println('continue outer'); i++; // Otherwise i never // gets incremented. continue outer; } if(i == 8) { System.out.println('break outer'); break outer; } for(int k = 0; k < 5; k++) { if(k == 3) { System.out.println('continue inner'); continue inner; } } } } }} ///:~结果:'i = 0','continue inner','i = 1','continue inner','i = 2','continue','i = 3','break','i = 4','continue inner','i = 5','continue inner','i = 6','continue inner','i = 7','continue outer','i = 8','break outer' class TestBreak { static void Main(string[] args) { List list = new List(); for (int i = 0; i < 100; i++) { list.Add(i); } foreach (int i in list) { if (i == 2) { continue;//结束此次循环,不再执行席迈的代码,继续下一次循环 } if (i ==10) { break;//退出整个循环 } Console.WriteLine("该值为:" + i.ToString()); } } }
原创粉丝点击