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的区别的主要内容,如果未能解决你的问题,请参考以下文章

return 和break的区别

JAVA里break和continue和return的区别

break ,continue ,return 的区别及作用?

return break和continue的区别和作用

求return,break,continu区别

js跳出循环的方法区别( break, continue, return ) 及 $.each 的(return true 和 return false)