break、continue、return的區別
1.break
有時候我們想在某種條件出現的時候終止迴圈而不是等到迴圈條件為false才終止。
這是我們可以使用break來完成。break用於完全結束一個迴圈,跳出迴圈體執行迴圈後面的語句。
2.continue
continue和break有點類似,區別在於continue只是終止本次迴圈,接著還執行後面的迴圈,break則完全終止迴圈。
可以理解為continue是跳過當次迴圈中剩下的語句,執行下一次迴圈。
break和continue用於迴圈語句中,不能用於函式中
3、return
1)返回資料
a、返回一個數值
function fn1(n,m){
return n+m;
}
b、返回一個布林值
function fn2(num){
return num>5;
}
//返回表示式,就是返回表示式的結果,結果就一定是布林值。
2、返回物件
a)工廠模式,函式中有一個var定義了一個物件,並且將這個物件返回出來(傳遞給外面),每次建立都將是一個新的物件
function fn3() {
var div=document.createElement(“div”);
div.style.width=“50px”;
div.style.height=“50px”;
div.style.backgroundColor=“red”;
return div;
}
b)var obj={
// 設定初始值
_instance:null,
createDiv:function () {
if(!this._instance){
this._instance=document.createElement(“div”);
}
return this._instance;
}
};
c)通過引數傳入物件
這裡沒有必要return;
function fn4(obj) {
obj.a=5;
return obj;
}
與工廠模式相同
function fn5(obj) {
var obj1=Object.assign({},obj);
obj1.a=3;
return obj1;
}
d)引數是函式
1、返回其它函式的執行結果
function fn6(fn) {
return fn(3,5);
}
function fn7(a,b) {
return a+b;
}
function fn8(a,b) {
return a*b;
}
var s=fn6(fn7);
var s1=fn6(fn8);
console.log(s,s1);
2、返回一個私密的物件
自執行函式中返回一個私密的物件,這個物件中的私有變數外部不可以獲取
var fn9=(function () {
var num=5;
return {
a:1,
c:function () {
} } }); 3、返回多個元素 返回多個無序的資料的內容,不許要指定該數值是幹什麼,有什麼用 function fn10() { var x=3; var y=4; var z=5; return [x,y,z]; } 4、返回物件 這裡指定了要返回資料每一個值對應的關鍵詞,就可以按需取出對應的關鍵詞設定 function fn11() { var width="100px"; var height="100px"; var color="red"; return {width:width,height:height,backgroundColor:color}; } 5、返回函式體 也就是常說的閉包 function fn12() { return function () { } } fn12()();
e)return還表示跳出
if(a){
if(b){
if©{
if(d){
if(e){
}
}
}
}
}*/
2、截斷跳出
function fn13() {
if(!a)return;
…
if(!b)return;
…
if(!c)return;
…
if(!d)return;
…
if(!e)return;
…
}
再每個舉例幾個簡單的案例和寫法
break用於完全結束一個迴圈,跳出迴圈體。不管是哪種迴圈,一旦在迴圈體中遇到break,系統將完全結束迴圈,開始執行迴圈之後的程式碼。 break不僅可以結束其所在的迴圈,還可結束其外層迴圈。此時需要在break後緊跟一個標籤,這個標籤用於標識一個外層迴圈。Java中的標籤就是一個緊跟著英文冒號(:)的識別符號。且它必須放在迴圈語句之前才有作用。
public class BreakTest2
{
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;
}
}
}
}
}
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後的輸出語句”);
}
}
}
eturn關鍵字並不是專門用於跳出迴圈的,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後的輸出語句”);
}
}
}