我想從 for 回圈中取出 if 條件來解決圈復雜度。如何從 for 回圈中取出 break 陳述句?
這是示例代碼。abc2是原來的功能
function abc2(){
for(var i=1; i<8; i ){
if(i==5)
break
console.log(i)
}
}
function abc(){
for(var i=1; i<8; i ){
aa(i);
console.log(i)
}
}
function aa(i){
if(i == 5)
break; // how to use break here
}
<html>
<body>
<button type="button"
onclick="abc()">
Click.</button>
</body>
</html>
uj5u.com熱心網友回復:
您可以重構該aa(i)函式以回傳一個boolean. break 陳述句從開關或回圈中中斷,這與您在上面顯示的情況不同,因此您收到錯誤。
function abc(){
for(var i=1; i<8; i ){
if (aa(i)){
console.log(i)
break;
}
}
}
function aa(i){
return i == 5;
}
abc();
uj5u.com熱心網友回復:
函式 aa(i){ if(i == 5) 中斷;// 這里如何使用break }
上面這部分只是一個 if 陳述句,你不能從 if 陳述句中中斷,因為沒有任何回圈可以中斷。break 只能在回圈中使用。
請參閱以下鏈接以獲取更多資訊
我希望你能找到你的答案
https://stackoverflow.com/questions/24714287/break-out-of-if-statement#:~:text=breaks don't break if statements.&text=But break s don't ,phone calls over nine hours.&text=你 can't break out,if is inside a loop。
uj5u.com熱心網友回復:
從更抽象的角度來看,您打算撰寫一個函式來影響呼叫背景關系中的程式流。
除了從函式回傳一個值或設定一些可從背景關系訪問的狀態(即產生副作用)之外,這是行不通的——這是正確的,因為它違反了軟體工程的基本最佳實踐(即封裝和區域性)并保證需要難以推理和維護的代碼。請注意,許多經驗豐富的開發人員已經對副作用感到不滿。
你可以做的是改變回圈界限;
將回圈分成兩個或修改增量操作:
function abc(){
for(var i=1; i<5; i ){
aa(i);
console.log(i)
}
// Now handle special case i == 5. Higher values of i will not be reached with the original loop definition
}
也許您打算跳過i==5原始回圈。您應該將回圈拆分為 2:
function abc(){
for(var i=1; i<5; i ){
aa(i);
console.log(i)
}
for(var i=6; i<8; i ){
aa(i);
console.log(i)
}
}
如果您經常應用這些模式,您可能希望將其推廣到某些功能中。
或者,修改增量:
function abc(){
for(var i=1; i<8; i = (i === 4) ? (i 2) : (i 1)){
aa(i);
console.log(i)
}
}
uj5u.com熱心網友回復:
我不確定是否可以取出 if 因為它是一個條件,并且您需要使用 if 或其他一些條件來排除該條件。也許就像做/一會兒。
如果你只想跳過 5 的值,你可以使用這個:
function abc2(){
for(var i=1; i<8;) {
if(i==5){
// don't run any code here, just increment i
i ;
} else {
someFunction() // run whatever code you want
i ; // then increment i
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/494003.html
標籤:javascript html jQuery 打字稿 功能
