前言:
可能很多人对这三个关键字在循环中使用时的作用都模棱两可, 针对我本人也是这种情况。所以就收集了资料,并自己实践后,得出了如下结论!讨论下它们的区别。
正文:
1.Return:直接跳出当前方法,返回到该调用的方法语句处,继续执行;
2.Continue:结束本次的循环,直接进行下一次的循环;
3.Break:在循环体内结束整个循环过程。
实践:
相同点:方法里面都是一个for循环,每次循环控制台打印结果,结束循环后在方法体中打印结果,方法执行结束后返回主函数后打印结果。
不同点:在for循环中写一个条件判断,例如i = 3时,看三个关键字分别的打印结果
效果:对比结果,分析区别
测试:
(一)测试函数
/**
* @author qingnianren
* @context return、continue、break关键字区别
*/
public class KeywordDifference {
public static void main(String[] args) {
testReturn();
testContinue();
testBreak();
System.out.println("======main 主函数======");
}
/**
* return测试方法
*/
private static void testReturn() {
for (int i = 0; i < 5; i++) {
if (i == 3) {
return;
}
System.out.println("---return--------" + i);
}
System.out.println("===return====for循环体外");
}
/**
* continue测试方法
*/
private static void testContinue() {
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue;
}
System.out.println("---continue--------" + i);
}
System.out.println("===continue====for循环体外");
}
/**
* break测试方法
*/
private static void testBreak() {
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
System.out.println("---break--------" + i);
}
System.out.println("===break====for循环体外");
}
}
(二)输出结果
Return关键字
---return--------0
---return--------1
---return--------2
======main 主函数======
Continue关键字
---continue--------0
---continue--------1
---continue--------2
---continue--------4
===continue====for循环体外
======main 主函数======
Break关键字
---break--------0
---break--------1
---break--------2
===break====for循环体外
======main 主函数======
结论:
return:当i == 3时,执行return后,不仅结束了循环,而且结束了方法,直接回到主函数了,所以return的作用是结束了所在方法的调用
continue:当i == 3时,执行continue后,没有打印接下的---continue--------3,但是下一次循环---continue--------4还是打印了,所以continue只是结束了本次循环
break:当i == 3时,执行break后,直接到for循环外,打印===break====for循环体外,所以break的作用是结束循环
锚点:
/**
* @author qingnianren
* @context out参数
*/
public class BreakOut {
public User setUserName(String str) {
User user = new User();
user.setName("unknown");
out:
{
if (str.equals("kyrie")) {
user.setName("irving");
break out;
}
if (str.equals("kevin")) {
user.setName("durant");
break out;
}
}
return user;
}
}