关于程序中的 retur break和continue的易错点和误区;
在这一周的学习当中,我经常会用到循环这一方面的问题了,既然遇到了循环,就不可避免的遇见了 return ,和break的问题 ,因为这俩个东西都有跳出循环的功能,但是在不同的场景下,又有着不同的功效1,
1,我首先去查了查百度对return和break的功效,定义:
1、break:执行break操作,跳出所在的当前整个循环,到外层代码继续执行。
2、continue:执行continue操作,跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。
3、return:执行return操作,直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。
二、结束不同
1、break:break不仅可以结束其所在的循环,还可结束其外层循环,但一次只能结束一种循环。
2、continue:continue结束的是本次循环,将接着开始下一次循环。
3、return:return同时结束其所在的循环和其外层循环。
三、紧跟不同
1、break:需要在break后紧跟一个标签,这个标签用于标识哪个外层循环。
2、continue:在continue后不需要加参数。
3、return:在return后需要紧跟一个返回值,用于提供给对应方法所需的返回值。
但是我发现这样理解这三者,还是有点生涩难懂,于是我去查了一查CSDN大佬的博客,
1、switch中return和break的作用是不一样的。
break是直接退出switch语句,如果循环里面有switch语句,这时候break语句只是跳出switch语句,作用不到循环体,return是退出该函数,也就是switch语句块后面的语句也不执行了。
2、使用break和return结束循环
break用于结束一个循环,即跳出循环体,执行循环体之后的代码。但是只能结束最靠近的那一层循环。
return关键字不是专门用于结束循环,return的功能是结束一个方法。当一个方法遇到return语句时,这个方法将被结束。方法结束 ,执行权回到方法调用处。
总结;,总的来说,return,能结束当前循环,和其外层循环,而break 只可以结束一层循环;
而continue 而是结束本次循环,并不影响下一次的循环,
然后这些在具体的代码当中有其他情况,例如Switch;
所以我具体的去对这几类打了一下代码
public class AA {
public static void main(String args[]) {
for (int j=1;j<=2;j++)
{
for (int i=1;i<5;i++)
{
System.out.println("1");
if(i==3) {
System.out.println("2循环内");
break;
}
}
System.out.println("一层循环");
}
System.out.println("最外");
}
}
1
1
1
2循环内
一层循环
1
1
1
2循环内
一层循环
最外
可以看出,当执行break时,他会结束当前执行的方法,但是并不会影响到外层方法的执行,
public class AA {
public static void main(String args[]) {
for (int j=1;j<=2;j++)
{
for (int i=1;i<5;i++)
{
System.out.println("1");
if(i==3) {
System.out.println("2循环内");
return;
}
}
System.out.println("一层循环");
}
System.out.println("最外");
}
}
1
1
1
2循环内
当执行return时,他会终止掉内外部的所有循环,
public class AA {
public static void main(String args[]) {
for (int j=1;j<=2;j++)
{
for (int i=1;i<5;i++)
{
System.out.println("1");
if(i==3) {
System.out.println("2循环内");
continue;
}
}
System.out.println("一层循环");
}
System.out.println("最外");
}
}
public class AA {
public static void main(String args[]) {
for (int j=1;j<=2;j++)
{
for (int i=1;i<5;i++)
{
System.out.println("1");
if(i==3) {
System.out.println("2循环内");
continue;
}
}
System.out.println("一层循环");
}
System.out.println("最外");
}
}
1
1
1
2循环内
1
一层循环
1
1
1
2循环内
1
一层循环
最外
从这里可以看到,continue,只是结束了当前循环的当前的循环次数
tips
值得一提的是,还有Switch中,break的用法`
int num = 2;
switch (num) {
case 1:
System.out.println("a");
break;
case 2:
System.out.println("b");
return;
case 3:
System.out.println("c");
break;
}
System.out.println("程序结束");
}
b
在Switch中可以看到,当执行当break时,break就不会执行,return也能执行,但是会影响到整个方法的执行,所以不推荐使用;
学习总结,
虽然是很小很简单的一个知识点,但是老师讲的时候我还是没能理解这三者的区别,所以我自己选择自己学习,通过网络上的途径,寻找适合自己的,但是不能光看,一定记得要记得自己动手去打一打自己的代码!!!,因为会看和会写真的是俩回事,这次可能写的有点啰嗦了,但是终于get到了这一个知识点;最后,诸君共勉,加油O.o!