A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在程序流程控制中,break、continue和return的区别是什么?

6 个回复

正序浏览
简单点理解 break就是直接结束退出循环  continue结束本次循环进入下次循环  return结束循环返回结果
回复 使用道具 举报
一。break

    1. break语句形式: break;

    2. break语句功能:

A. switch语句中,break语句会终止其后语句的执行,退出switch语句。

B. 使一个循环立即结束,也就是说在循环中遇到break语句时,循环立即终止,

程序转到循环体后的第一个语句去继续执行。

    3. 注:

A. break语句在循环中使用时,总是与if一起使用,当条件满足(或不满足)

时,负责退出循环。

       B. 如果循环体中使用switch语句,而break出现在switch语句中,则它只用

于结束switch,而不影响循环。

       C. break语句只能结束包含它的最内层循环,而不能跳了多重循环。

    4. 例: break语句的执行只能从while循环中退出,继续执行for循环的其它语句

而不是退出外层循环。

       for()

       {

           :

           :

           while()

           {

              :

              :

              if() break;

              :

              :

           }

           :

           :

       }





二。continue   

    1.continue语句形式: continue;

    2.continue语句功能:   它只能出现在循环体中,其功能是立即结束本次循环,

即遇到continue语句时,不执行循环体中continue后的语句,立即转去判断循环条件是否成立。   

3.Continue与break语句的区别: continue只是结束本次循环,而不是终止整个循

环语句的执行,break则是终止整个循环语句的

执行,转到循环语句后的下一条语句去执行。

     程序表达式及流程图如下:

(1.)        while(表达式1)                  (2.)while(表达式1)

{                                    {

      :                                   :

           If(表达式2) break;                  if(表达式2) continue;

           :                                    :

       }                                    }


1.return语句形式: return (返回值);

    2.功能:return可以返回一个函数的值,并且跳出这个函数;



      Void doSomething(){

       do whatever is required by this method …

       return;

    }

只要遇到return语句,程序就在那一行代码停止执行,执行控制将立刻返回到调用该程序的代码处。

对于返回值类型为void的程序,return关键字单独作为完整的语句使用:

return;

1.    对于返回类型为void的程序,return;语句是可选的。如果省略这条语句,隐含表明程序的最后一行有一个return;语句。即,下面两个版本的doSomething程序是等价的:

void doSomething(){

     int x=3;

     int y=4;

     int x=x+y;

}



void doSomething(){

     int x=3;

     int y=4;

     int x=x+y;

     return;

}



2.    对于返回类型非void的程序体,必须至少包括一条明确的return语句。这种情况下,return关键字后面必须跟随一个求值类型和程序声明的返回类型一致的表达式。例如,如果程序定义为具有int返回类型,那么下列任何一种return语句都可以接受:

return 0; //returning a constant integer value

return x; //returning the value of x(assuming that x has previously been declared to be an int)

return x+y; //returning the value of the expression”x+y”(here,we`re assuming that “x+y” evaluates to an int value)

return (int)z; //casting the value of z(assume z was declared as a double to an int value)

3.    如果程序定义为具有boolean返回类型,那么下列任何一种return语句都可以接受:

return false;   //returning a Boolean constant value

return outcome; //returning the value of variable outcome (assuming that outcome has previously been declared to be of type Boolean)

return(x<3);    //returning the Boolean value that results when the value of x is compared to 3: if x if less than 3, this method returns a value of true; otherwise, it returns false.

程序体可以包含不只一条return语句。但好的编程习惯是一个程序中只在最末尾包含一条return语句。再看一下前面讨论过的isHornorsStudent程序,这个程序有两条return语句:
boolean isHonorsStudent(){

if(gpa>=3.5) return true; //first return statement

else return false; //second return statement

}



使用局部boolean型变量result来重写这个程序,该变量捕获最终返回的true/false结果。在程序最末尾用一条return语句返回result变量的值:

boolean isHonorsStudent(){

boolean result = false;

if(gpa>=3.5) result = true;

else result = false;

return result;

}

如上述代码所示,由于已经给result变量赋予初值false,因此在else子句中明确地给它赋值false是不必要的,可以像下面这样简化isHornorsStudent程序:

boolean isHonorsStudent(){

boolean result = false;

if(gpa>=3.5) result = true;

return result;

}

但是有一种情况下多个return语句是可以接受的:程序需要执行一系列操作,在这个过程中,任何一步失败意味着整个程序失败。下面的伪代码阐明了这种情况:

function cs(n){

if(n==1) { retrun 1; }

if(n==2) { return; }

else { }

}

说明:   当参数为1时函数返回值为1并且跳出函数,

                当参数为2时函数返回值为空并且跳出函数,

                当函数为其他值时继续执行函数下面的语句,直到遇到下个return或则全部执行完语句在跳出函数


回复 使用道具 举报
本帖最后由 张洋铭 于 2011-10-11 11:13 编辑

我觉得,这几个跳转语句没有必要记太多内容。

1. 既然作为跳转语句存在,最核心的就是弄清楚他们跳到什么地方。

2. break是跳出当前循环,如果是嵌套型的循环,那他就跳出所在的循环体。还有就是在switch中使用。

3. continue是跳到当前循环的判断条件,条件为真开始下次循环,为假则结束。嵌套后也是跳到当前循环体的判断条件。

4. return 是和方法相关的,有返回值的方法,必须return下,它的功能是结束当前方法。在保证有一个return肯定能执行的前提下,可以存在多个判断型的return。

5. 如果是void方法,那么return后面不能加东西,要单独使用,仅仅表示结束当前方法而已。当然不管哪种情况,结束后都跳转到调用该方法的语句。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
康健 黑马帝 2011-10-11 10:40:57
板凳
continu和break的区别 一个循环体内包含另外一个完整的循环结构,称为循环的嵌套。break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句。break用于循环体内作用是使流程从循环体内跳出循环体,提前结束循环,执行循环体下面的语句。break只能用于循环语句和switch语句中,不能单独使用或者用于其他语句。
使用break 退出循环 可以使用break 语句直接强行退出循环.循环被终止.
  而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句
  return语句用来明确地从一个方法返回。返回值给相应的调用它的对象或方法。

评分

参与人数 1技术分 +1 黑马币 +4 收起 理由
wangfayin + 1 + 4 赞一个!

查看全部评分

回复 使用道具 举报
1、return 语句的作用

      (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行
      (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致
      (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。

2、break语句的作用
      (1) 只能在循环体内和switch语句体内使用break语句。
      (2) 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
      (3) 当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
      (4) 在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环

3、continue语句作用
      (1) continue语句continue语句的一般形式为:contonue;
      (2) 其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
      (3) 注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分 ,然后决定循环是否继续进行。
      (4) 在for 循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,
       最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同

回复 使用道具 举报
本帖最后由 丁林 于 2011-10-11 09:50 编辑

          break 语句可以直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。例如 如果for 循环被设计为从 0执行到99,然后输出0到99这些数字,但是当i等于10时,break语句终止程序。所以程序只会输出0到10。 在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。

      而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句

      return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。在一个方法任何时间,return 语句可被用来使正在执行分支程序返回到调用它的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马