MEL合宿 -19日目-

MEL合宿 -19日目-は、お目にかかる機会は少ないですが、「do while文」について見ていきたいと思いまーすっ!(`・ω・´)ゞ

do while文

MELでのdo while文は、以下のように記述します。

do{
	繰り返し行いたい処理
}while(繰り返し条件)

このdo while文は、以下のように処理されていきます(`・ω・´)ゞ

  1. ブロック内に書かれた「繰り返し行いたい処理」を行います。
  2. 繰り返し条件」が成立するか調べます。成り立たなければ繰り返し処理は終了します。
  3. 1に戻ります。

while文との違いは、「繰り返し条件」を調べる前に「繰り返し行いたい処理」を行います。条件に関わらず、絶対1回は実行してくれるっというわけです!!

do while文を使ってみる!

以下のコードは、「絶対に繰り返し条件」が成立しませんが1回だけ「繰り返し行いたい処理」を実行してくれます。

int $i = 1;
do{
	print $i;
	$i++;
}while($i < 0);

選択されたノードをScript Editorに表示してみる!

while文でやった「選択されたノードを取得してScript Editorにノード名を表示」するコードは、以下のように書くこともできます!

{
	string $selection[] = `ls -sl`;
	int $i = 0;
	do{
		print ($selection[$i]+"\n");
		$i++;
	}while($i < `size $selection`);
}

しかし!

条件に関わらず、絶対1回は実行してくれる」ということが仇になり、何も選択肢ない状態で実行すると不思議な現象が起きてしまいます。

なぜ!?

必ず1回は実行されるのが「do while文」ので、空っぽの「$selection」からデータを取り出そうと「$selection[0]」が実行されてしまいます。

すると、空っぽの文字列をScript Editorに表示してしまいますが、ちょー気づきにくい。。。そのままプログラミングを続けてしまうと、エラーの原因にもなってしまいます(;´∀`)

なんだが、かえって面倒くさい(´・ω・`)

お目にかかる機会も少ないと思いますので、こんなのあったなーくらいでいいと思います!w

まとめ!

  1. do while文は、条件が成立している間繰り返す!
  2. ただし、「繰り返し条件」に関わらず「繰り返し行いたい処理」は1回は実行される!
  3. 無限ループになりやすいので、よくよく注意する!

それでは次回もお楽しみに!!(`・ω・´)ゞ