今回は「繰り返し処理」を行うための「for文」について、
解説していきます。
for文
「for文」は一定の処理を指定回数(配列に格納されている要素数)繰り返すための機能です。
例えばMODOで言うと、選択されている全ての頂点の座標を知りたい場合、
以下のようなフローが考えられます。
一定の処理内容
- 1番目に選択されている頂点を調べる
- 1番目に選択されている頂点の座標を「配列」などに代入する
上記の一定の処理内容を、選択されているすべての頂点に対して行うことになります。
10個頂点が選択されていれば、10回上記の処理を繰り返すことになります。
ここで「for文」の登場です。
実際にMODOでスクリプトを書く場合、
選択されている頂点の一覧は、配列(tuple型)で取得することが可能です。
この配列に格納されている頂点1つ1つについて「for文」で座標を調べることになります。
for文の記述方法
for 変数 in 配列:
処理内容1行目
処理内容2行目
処理内容3行目
処理内容4行目
処理内容5行目
・
・
・
以上のように記述します。
「for」の次に「変数を宣言」していますが、
「値」の代入は行いません。
この「変数」には、その後に続く「配列」の要素が1つずつ、
「for文」の繰り返し処理が開始するたびに代入されます。
そして最後の要素が代入されて、「for文」の一定の処理が終わると、
「for文」の繰り返し処理は終了となります。
「for文」も「if文」同様に、
どこまでが「for文」による繰り返し処理の内容なのかを明確にするため、
処理内容はインデントによる字下げを行います。
for文を書いてみる
array = [1, 2, 3, 4, 5]
for i in array:
print(i)
以上のように書いてみます。
まず「array」と言う変数を宣言し、「list型」の配列を用意して代入しています。
あらかじめ、配列の要素も代入しておきました。
次に「for文」を記述しています。
「for」の後に「i」と言う変数を宣言し、
「in」に続いて、先に作成した配列「array」を指定しています。
この場合の処理の内容は以下の通りとなります。
1巡目は「array」のインデックス「0」の要素「1」が変数「i」に代入されます。
処理内容は、インデントで字下げをした「print(i)」が実行されます。
ここで繰り返し処理の内容は終了となりますので、
次の順になります。
次の順は、配列「array」のインデックス「1」の要素「2」が変数「i」に代入されます。
処理内容は、インデントで字下げをした「print(i)」が実行されます。
ここで繰り返し処理の内容は終了となりますので、
次の順になります。
と言う具合に、今回の場合は配列の最後の要素「5」まで、
「for文」による繰り返し処理が行われます。
「for文」の動作イメージをわかりやすくすするために、上記のように「in」の後ろを書き換えてみました。
上記の通り「in」の後に、直接「配列」を記述してもかまいません。
array = [1, 2, 3, 4, 5]
for i in array:
ans = i * 2
print(ans)
上記は変数「i」に代入された「要素」に対して、2倍した値を変数「ans」へ代入しています。
そして、その結果を「print()」関数によって表示しています。
array = [1, 2, 3, 4, 5]
for i in array:
if i == 3:
print(i)
上記の通り、「if文」と組み合わせて使用する機会が、
MODOのスクリプトを書く上ではよく出てきます。
この場合、「i」に「3」が代入された場合だけ、
「print()」関数が実行される仕組みです。
MODOでスクリプトを書く上での最低限の知識を
6回に分けて解説してきました。
「if文」と「for文」は特に多用する機能です。
ここまでの基礎知識をしっかりと把握していただければ、
そこそこのスクリプトを書くことは難しくありません。
次回からは、MODOで本格的にスクリプトを書いていきましょう。
次回をお楽しみに!