« C4DのC.O.F.F.E.E.のループfor(){...} | トップページ | C4Dのポイントに新規ヌルオブジェクトを追加配置するユーザスクリプト »

C4DのC.O.F.F.E.E.のループwhile(){...}

C.O.F.F.E.E.のもう一つのループ処理、while()です。
while()には2種類ありますが、まずは、while(){...}から。

スクリプトやプログラムの学習を始めたとき、for(){...}は、繰り返す回数が分かっている時に使用し、while(){...}は繰り返す回数が不明の時に使うと説明されますね。

ま、while(){...}さえあれば十分なんですけどね…

for(){...}と同じく試してみます。

while()とは…

while(条件式){処理}

ですね。
条件式がTRUEの時、繰り返し処理されます。

/*
while()のテスト
*/


main(doc , op)
{
  var c = 0;

  while(c < 10){//cが10未満であれば繰り返す。
    println(c);
    c++
  }
  println("---loop end---");
}

0
1
2
3
4
5
6
7
8
9
---loop end ---

実行すると、コンソールには左のように出力されます。

main(doc , op)
{
  var c;
  for(c = 0 ; c < 10 ; c++)println(c);
  println("---loop end---");
}

と同等ですね。

では、変数cの宣言と初期化を

var c = 20;

へ変更します。

---loop end---

そうすると、while()の条件式の結果はFALSEになりループ内の処理はされません。

では、for()と同じなのでbreak/continueを試して今回は終了します。

/*
while()テスト
*/


main(doc , op)
{
  var c = 0;

  while(c < 20){
    c++;
    println("befor" , c);
    if(c == 7)continue;
    if(c == 11)break;
    println("after" , c);
  }
  println("---loop end---");
}

befor1
after1
befor2
after2
befor3
after3
befor4
after4
befor5
after5
befor6
after6
befor7
befor8
after8
befor9
after9
befor10
after10
befor11
---loop end---

今回のwhile()テストは、無限ループにならないように、ループ処理の最初に変数cをインクリメントしました。
このスクリプトは、cは0スタートで有効値は20未満。
7になったらcontinue、11になったらbreakします。

結果は左です。

for()のテスト同様、continueが実行されるとループ処理を中止し、while()の最後まで飛ばされます。
その為、

after7
が、ありません。

breakが実行されるとループ処理を中止します。

その為、

after11
が、ありません。

while()からも脱出します。

では、最後にwhile(){...}のフローチャートです。

while(条件式){繰り返し処理}

For_03

|

« C4DのC.O.F.F.E.E.のループfor(){...} | トップページ | C4Dのポイントに新規ヌルオブジェクトを追加配置するユーザスクリプト »