return,break,continue区别

【前言】

         学生提问:return,break,continue三者的区别及使用场景?

 

【概论】

         关于return,break,continue三者,讲课时总结过。可能不太详细,有些同学不太懂,这里再具体区分介绍下

         ① break:跳出当前循环,所在的循环层结束

         ②continue:只是跳过本次执行,继续执行下次循环,并未跳出 

         ③return直接结束整个方法,不管这个return处于多少层循环之内

 

【详解】

    案例:(这里我用PHP,不过for循环语法和JS的类似)

<?php
	for($i = 1;$i < 4; $i++){
		for($j=1;$j < 3; $j++){
			echo "我是第".$i."排第".$j."列<br>";
		}
		echo "第".$i."排<br>";
	}
	echo "完成循环,执行完毕";
?>

   输出结果:

                                            我是第1排第1列

                                            我是第1排第2列

                                            第1排

                                            我是第2排第1列

                                            我是第2排第2列

                                            第2排

                                            我是第3排第1列

                                            我是第3排第2列

                                            第3排

                                            完成循环,执行完毕 

这是正常输出的结果,下面用break,continue和return分别执行

 

 (1)break

         跳出当前循环,所在的循环层结束。循环层是针对嵌套循环来说的,如果在嵌套循环的某层里用break,那么只会跳出当前的层,继续执行嵌套循环的其他层。

        修改上面代码,看下效果:

<?php
	for($i = 1;$i < 4; $i++){
		for($j=1;$j < 3; $j++){
			if($i == 3){
				break;
			}
			echo "我是第".$i."排第".$j."列<br>";
		}
		echo "第".$i."排<br>";
	}
	echo "完成循环,执行完毕";
?>
   输出结果:

                              我是第1排第1列

                              我是第1排第2列

                              第1排

                              我是第2排第1列

                              我是第2排第2列

                              第2排

                              第3排

                              完成循环,执行完毕

由上面代码可以分析出:break只是跳出了所在层的循环,本例中跳出了变量$j所在的层

(2)continue

    continue的功能和break有点类似,区别是continue只是跳过本次循环继续执行下次循环,并未跳出 

<?php
	for($i = 1;$i < 4; $i++){
		for($j=1;$j < 3; $j++){
			if($i == 3){
				continue;
			}
			echo "我是第".$i."排第".$j."列<br>";
		}
		echo "第".$i."排<br>";
	}
	echo "完成循环,执行完毕";
?>
   输出结果:

                      第1排

                      我是第2排第1列

                      我是第2排第2列

                      第2排

                      我是第3排第1列

                      我是第3排第2列

                      第3排

                      完成循环,执行完毕

分析可以得出containue只是跳过了本次执行,并未跳出循环

 

(3)return

      return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。

<?php
	for($i = 1;$i < 4; $i++){
		for($j=1;$j < 3; $j++){
			if($i == 2){
				return;
			}
			echo "我是第".$i."排第".$j."列<br>";
		}
		echo "第".$i."排<br>";
	}
	echo "完成循环,执行完毕";
?>

   输出结果:

                     我是第1排第1列

                     我是第1排第2列

                     第1排

分析可以看出return直接结束整个方法,不管这个return处于多少层循环之内。

 

 

 

 

 

 

 

 

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2413159