return/break文の妙味

1744 ワード

JavaScriptの中で、普通はプログラムをfunctionの中で半分まで実行させたい時、ある種類の操作を判断して或いは完成した後に後のコードを実行して、returnでfunctionを終了します.
たとえば:
//前後のスペースを削除するfunction spaceWord(vRet){
if(!vRet) return vRet;
//                     ,                 return 
//while                ,
while (true) {//    
    if (vRet.indexOf (' ') == 0) {
        vRet = vRet.substring(1, parseInt(vRet.length));
    } else if ((parseInt(vRet.length) != 0) && (vRet.lastIndexOf (' ') == parseInt(vRet.length) - 1)) {
        vRet = vRet.substring(0, parseInt(vRet.length) - 1);
    } else {
        return vRet;//  return           
    }
}
}consolie.logs(spaceWord);
しかし、もし私が多層の判断をしたいなら、中断したいのはその中の一つだけです.
function(){
//  1...
if(stopRun == true){
    //  2 ...
    if(cando == false){
        return
    }
    //  3 ...
}
//  4 ...
)
returnを使って運転を終了したら、コード3とコード4は実行できません.
このような需要をうまくbreakでコードの中断を実現して、関数全体を終了しません.
例えば:var stopRun=true、cando=false;function ww(){
//  1...
while(stopRun == true){
    //  2 ...
    console.log(2)
    if(cando == false){
        break
    }
    //  3 ...
    console.log(3)
    break
}
//  4 ...
console.log(4)
)
上のロジックはコード2文を実行すると、break文が発生し、コードが循環実行コード4を飛び出すと、実行出力は2 4となります.コード3は阻止されましたが、関数の運行を阻止しませんでした.
breakはifの中では使えませんが、サイクルの中で使えますので、whileのような循環文を使ってコードの実行を中断できます.理論的にすべてのサイクルがこの機能を実現できます.whileを選ぶのは簡潔でifの代わりに判断できるからです.気をつけてwhileは最後にbreakを一つ加えてください.でないと、死のサイクルになります.
Whileの中に複数のif()breakを入れてブレークポイントとして、論理を制御する流れがあります.function(){
var a=0;
while(a==0){
    console.log("  ")
    a++
    if(a!=1)break
    console.log("   ")
    a++
    if(a!=2)break
    console.log("   ")
    break
}
)