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

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

上記のスクリプトでは、"$x" > 32 回テストする必要があります。実際に初めてテストしたとき、本当なら while ループをエスケープして次の while ループに進みたいと思います。

continue 2外側のループをエスケープするようなものを使用できるようにする簡単な方法はありますか?

4

1 に答える 1

1

"break" と "continue" は "goto" の近親者であり、プログラムの制御フローの飛躍を引き起こす名前のない状態を導入するため、通常は避ける必要があります。プログラムの他の部分にジャンプする必要がある条件が存在する場合、次にそれを読む人は、その条件を理解する必要がないように名前を付けてくれてありがとう!

あなたの場合、スクリプトは次のように簡潔に記述できます。

dataInRange=1
while [condition -a $dataInRange]
do
  for [condition -a $dataInRange]
  do
    if [ "$x" > 3 ];then
      dataInRange=0
    fi
  done
done
于 2012-10-26T01:10:05.603 に答える