return 和break的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了return 和break的区别相关的知识,希望对你有一定的参考价值。
1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出.2)continue 也是终止当前的循环过程,但他并不跳出循环,而是继续往下判断循环条件执行语句.他只能结束循环中的一次过程,但不能终止循环继续进行.
3)return 语句可被用来使 正在执行分支程序返回到调用它方法。(费解)
详说return
return表示中止当前函数的运行,并将操作权返回给调用者。
如果是在main函数中,表示将操作权返回给操作系统。
return不是必须要返回一个值。
void func(void)
......
......
return;
当然,就算不写return,在函数执行完毕后也会返回操作权给调用者。写return是一种清晰的风格,可以防止一些意外的错误。所以书上只说应该写,而不是必须写。
如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到“”时会自动返回,这个问题其实你自己到机器上试一下就知道了。不过作为一个良好的编程习惯,每个函数都有返回语句倒是对的,这样更有可读性,并利于程序的维护~~~~
return 指令一个是返回一个指定数据给主调函数,
另外的一个作用就是 结束 所在函数的执行 ...
子函数中的运算是不能改变main()中已经定义的变量
int add(int a, int b)
int c;
c=a+b;
main()
int a=1,b=2, c=0;
add(a,b);
printf("/nc=%d/n", c);
你看看 最后结果还是c=0;
因为计算机执行一个程序的时候 他只看到main();
他十分忠诚的 从main()的第一句 一直执行到最后一句 ;
中间的那个 add()调用;
这时main()函数被挂起 ;
也就是停止运行 系统会把main()放在一块内存x中 ;
这时 系统会把一片内存y划分给add()函数;
也就是说 main()中的abc;和add()中的abc;
并不是同一个东西;
他们只是在数值上相等罢了;
系统首先把a;b;的值传给add;
然后运行;
c=3;
然后系统没有发现add中有return;
也就是 子函数做完了运算;
并没把内存y中的结果送给main();
这时候 add运行结束;
系统唤醒内存x中的main();
开始运行下一句 这时候 ;
add函数做的一切 都是白干了;
他并没有把他的结果上交给main()函数;
所以c仍然是0;
add(int a, int b)
int c;
c=a+b;
return c;
main()
int a=1, b=2, c=0;
c=add(a,b);
printf("/nc=%d/n",c);
/*还可以这样写*/
printf("/nc=%d/n",add(a,b));
想要通过子函数来改变main()中的东西;
有两个方法:1 return ; 2 通过指针;
这里 指针我就不说了 到了c#就没有指针了 我是学c的 才大一 ;
我们用的最多的是指针;一般不用return ; 参考技术A return 表示从被调函数返回到主调函数继续执行,
返回时可附带一个返回值,由return后面的参数指定。
return 通常是必要的,
因为函数调用的时候计算结果通常是通过返回值带出的。
如果函数执行不需要返回计算结果,
也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),
主调函数可以通过返回值判断被调函数的执行情况。
如果实在不需要函数返回什么值,就需要用void声明其类型。
break语句
在执行过程中,如果因为一些特殊的要求,需要强行退出循环时,就要使用break语句。
使用时,将break写在循环体的任何一个位置,一旦执行到这条语句,
程序直接跳转到循环体结束后的代码。
说人话,就是:
return; 退出函数,并且带返回值。
break; 退出循环体。本回答被提问者采纳 参考技术B break跳出的是循环
return跳出的是函数
return break和continue的区别和作用
1.return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。
public class ReturnTest
{
public static void main(String[] args){
// 一个简单的for循环
for (int i = 0; i < 3 ; i++ ){
System.out.println("i的值是" + i);
if (i == 1){
return;
}
System.out.println("return后的输出语句");
}
}
}
2.continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全中止循环。
public class ContinueTest
{
public static void main(String[] args){
// 一个简单的for循环
for (int i = 0; i < 3 ; i++ ){
System.out.println("i的值是" + i);
if (i == 1){
// 忽略本次循环的剩下语句
continue;
}
System.out.println("continue后的输出语句");
}
}
}
3.break用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。 break不仅可以结束其所在的循环,还可结束其外层循环。此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟着英文冒号(:)的标识符。且它必须放在循环语句之前才有作用。
public class BreakTest
{
public static void main(String[] args){
// 外层循环,outer作为标识符
outer:
for (int i = 0 ; i < 5 ; i++ ){
// 内层循环
for (int j = 0; j < 3 ; j++ ){
System.out.println("i的值为:" + i + " j的值为:" + j);
if (j == 1){
// 跳出outer标签所标识的循环。
break outer;
}
}
}
}
}
--------------------- 本文来自 xiaomgee 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xiaomgee/article/details/78570139?utm_source=copy
以上是关于return 和break的区别的主要内容,如果未能解决你的问题,请参考以下文章
break ,continue ,return 的区别及作用?
js跳出循环的方法区别( break, continue, return ) 及 $.each 的(return true 和 return false)