js|labelは何ですか?サイクルの中で何の効果がありますか?
2894 ワード
「JavaScript高級プログラム設計」第三版の第三章を見て、Label文を発見しました.普段jsを勉強していますが、ほとんど出会っていません.勉強と練習を通じて、labelとbreak、continueは結合していくつかのステップを節約できます.
まず正常なforサイクルをください.
breakを追加:
contineに参加する:
上記の二つの例は正常な状況でbreakとcontinueを入れて、二つの異なる跳躍サイクルを説明しています.labelはコードにラベルを追加し、breakとcontinueと連携して使用し、コードの特定の位置に戻ります.
break付きの文にlabelを入れます.
continue付きの文にlabelを入れます.
labelを使いすぎないように注意してください.デバッグに迷惑をかけます.説明性のあるタグを使うと同時に、入れ子が多すぎないようにしてください.
まず正常なforサイクルをください.
var num = 0;
for (var i = 0 ; i < 10 ; i++){
for (var j = 0 ; j < 10 ; j++){
num++;
}
}
alert(num); // 100
二重循環を経て、numは100です.ここは大丈夫です.breakを追加:
var num = 0;
for (var i = 0 ; i < 10 ; i++){
console.log("i="+i)
for (var j = 0 ; j < 10 ; j++){
console.log("j="+j)
if( i == 5 && j == 5 ){
console.log("i,j=5")
break;
}
num++;//95
}
}
console.log(num);
サイクルはiが5で、jが5の時にjサイクルを跳び出しますが、iサイクルを続けますので、numは5回+の数が少なくなりました.出力は95です.contineに参加する:
var num = 0;
for (var i = 0 ; i < 10 ; i++){
console.log("i="+i)
for (var j = 0 ; j < 10 ; j++){
console.log("j="+j)
if( i == 5 && j == 5 ){
console.log("i,j=5")
continue;
}
num++;//99
}
}
console.log(num);
出力は99で、i=5,j=5でスキップしますが、j=6の操作を続けますので、numは一回だけ足りません.上記の二つの例は正常な状況でbreakとcontinueを入れて、二つの異なる跳躍サイクルを説明しています.labelはコードにラベルを追加し、breakとcontinueと連携して使用し、コードの特定の位置に戻ります.
break付きの文にlabelを入れます.
var num = 0;
outPoint:// label, outPoint
for (var i = 0 ; i < 10 ; i++){
console.log("i="+i)
for (var j = 0 ; j < 10 ; j++){
console.log("j="+j)
if( i == 5 && j == 5 ){
console.log("i,j=5")
console.log(num)
break outPoint;
}
num++;//55
}
}
console.log(num);
サイクルはiが5であり、jが5であるときに、ダブルサイクルを抜け出して、out Point層に戻り、ループ以外の次の動作を継続して実行し、出力55を出力する.continue付きの文にlabelを入れます.
var num = 0;
outPoint:
for (var i = 0 ; i < 10 ; i++){
console.log("i="+i)
for (var j = 0 ; j < 10 ; j++){
console.log("j="+j)
if( i == 5 && j == 5 ){
console.log("i,j=5")
console.log(num)
continue outPoint;
}
num++;//95
}
}
出力95は、iが5であり、jが5であるときに、ダブルサイクルを抜け出して、out Point層に戻って、未終了サイクルを継続して実行する.すなわち、i=6から、numは5回+++だけスキップした.labelを使いすぎないように注意してください.デバッグに迷惑をかけます.説明性のあるタグを使うと同時に、入れ子が多すぎないようにしてください.