skrip shell: loop bersarang dan lanjutkan (shell script : nested loop and continue)


問題描述

skrip shell: loop bersarang dan lanjutkan (shell script : nested loop and continue)

while [condition]
do
  for [condition]
  do
    if [ "$x" > 3 ];then
      break
    fi
  done

  if [ "$x" > 3 ];then
    continue
  fi
done

In the above script I have to test "$x" > 3 twice. Actually the first time I test it, if it is true I want to escape the while loop and continue to the next while loop.

Is there any simpler way so I can use something like continue 2 to escape the outer loop?

‑‑‑‑‑

參考解法

方法 1:

"break" and "continue" are close relatives of "goto" and should generally be avoided as they introduce some nameless condition that causes a leap in the control flow of your program. If a condition exists that makes it necessary to jump to some other part of your program, the next person to read it will thank you for giving that condition a name so they don't have to figure it out!

In your case, your script can be written more succinctly as:

dataInRange=1
while [condition ‑a $dataInRange]
do
  for [condition ‑a $dataInRange]
  do
    if [ "$x" > 3 ];then
      dataInRange=0
    fi
  done
done

(by user1769686Ed Morton)

參考文件

  1. shell script : nested loop and continue (CC BY‑SA 3.0/4.0)

#continue #shell






相關問題

skrip shell: loop bersarang dan lanjutkan (shell script : nested loop and continue)

syntaxError:“繼續”在循環中不正確 (syntaxError: 'continue' not properly in loop)

php continue - 替代方式? (php continue - alternative way?)

Python 中的歐拉 #4 (Euler #4 in Python)

if-continue vs 嵌套 if (if-continue vs nested if)

如何返回上一個 while 循環? (How do I return to the previous while loop?)

php foreach 繼續 (php foreach continue)

在while循環中繼續的奇怪行為 (weird behaviour of continue in while loop)

是否可以使用 'yield' 來生成 'Iterator' 而不是 Scala 中的列表? (Is it possible to use 'yield' to generate 'Iterator' instead of a list in Scala?)

BASH:在 for 循環中使用 continue (BASH: Using a continue in a for loop)

rand() 函數後繼續指令的問題 (Problem with continue instruction after rand() function)

在tictactoe遊戲中重複輸入錯誤 (Error in repeating input in a tictactoe game)







留言討論