break、continue、return之间的区别与联系
在软件开发过程中,逻辑清晰是非常之重要的。 代码的规范也是非常重要的。往往细节决定成败。在编写代码的时候,一定要理解语言的作用以及使用的方法和场景。下面来介绍一下break、continue、return三者的区别和联系。
1. break :
(1).结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。
(2).只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。[逐层判断,逐步跳出]
(3).break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。
(4).当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
总的来说:就近原则,结束当前的整个循环。
2. return:
(1).return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
(2).return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
(3). return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
3. continue:
(1).终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
(2).结束当前循环,进行下一次的循环判断。
(3).终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.
代码如下:
public static void test() {
for (int i = 0; i < 10; i++) {
if (i == 3) {
// break;//
// continue;//i=3的时候结束这一次的循环,继续执行i=4的循环
return;// 直接结束整个函数
}
System.out.println("----" + i);
}
System.out.println("-111--");
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
附图片:
当为return的时候:
当为continue的时候:
当为break的时候:
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
</div>
while(1)
{
if(...)
{
......
}
else if()
{
for (menu = __app_menu_item_start; menu != __app_menu_item_end; menu++)
{
if (menu->parent == cur_menu && menu->key == pressed_key)
{
cur_menu = menu;
menu_play_sound(menu);
if (menu->handle)
{
SYS_LOG_INF("enter handle\r\n");
ret = menu->handle(menu);
cur_menu = menu->parent;
menu_play_sound(cur_menu);
}
break;
}
}
}
..............
}
break 只是跳出了for的循环,但是没有跳出外层的while(1)的循环