在刚开始学习C语言里面的循环语句时,一直分不清
break与continue的区别,当时老师对于这个知识点也没有详细讲解,只是一带而过。因此一直在这两个语句相当模糊,只是知道有这么回事而已。
今天下午闲着没事,就拿起一本编程书看了一下,刚好看到这两个语句,便记录下来,以备以后查看。
在C语言之父“丹尼斯·里奇”写的《C程序设计语言》中,对于break和continue语句的描述如下:
break语句可用于从for、while与do-while等循环中提前退出,就如同从switch语句中提前退出一样。break语句能使程序从switch语句或最内层循环中立即跳出。
continue语句与break语句是相关联的,但它没有break语句常用。continue语句用于for、while或do-while语句开始下一次循环的执行。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环中,则意味着控制转移到递增循环变量部分。continue只用于循环语句,不用于switch语句。
对与这段话,我觉得是这样理解的:
break语句的作用是:在循环体中执行到break语句时,将会立即跳出整个循环语句,执行循环语句后面的程序;
continue语句的作用是:在循环体中执行到continue语句时,将会终止本次循环并执行下一次循环,直到循环条件不再符合,才跳出整个循环。
为了便于理解,我们可以写一段简单的javascript来验证一下:
<html>
<head>
<title>break与continue的区别</title>
</head>
<body>
<script type=”text/javascript”>
for (i=0;i<10;i++){
if(i==3 || i==5 || i==8) continue;
document.write(i); }
</script>
</body>
</html>
当执行这段代码时,页面应该输出的是 0124679 ;因为当i=3 、 i=5 或 i=8 时,循环体执行continue语句,终止本次循环,document.write(i); 并不会执行,因此并不会输出3、5、和8这几个数字。 其结果如下图所示:
当我们把上面代码中的continue语句改为break再执行一下,结果应该为 012 ,因为当i=3时,循环体执行break语句,跳出整个循环,所以3以后的循环都不会再执行。其结果如下图所示: