「同じ文を何度も書くのが大変!」
「繰り返し処理を行う方法(while文)を知りたい」
この記事はそんな疑問を持つ方に向けて、コードや実行結果、フローチャートを使って解説します!
私が大学や本で学んだことをわかりやすくまとめてみました!
繰り返し処理の必要性
「そもそも繰り返し処理をする必要があるの?」
と疑問に思っている人がいると思います。
そこで、繰り返し処理が必要な場面を教えていきたいと思います。
例えば、同じ円を縦に並べて描画したい時に繰り返しを使わないようにすると、このように書くと思います。
size(400,400);
ellipse(200,50,50,50);
ellipse(200,100,50,50);
ellipse(200,150,50,50);
ellipse(200,200,50,50);
ellipse(200,250,50,50);
今回は5つだったのでそこまで苦に感じませんでしたが、これが100個などもっと多く描画したい時にはどうでしょうか?
さすがに何度も書くのは大変ですよね?
そこで繰り返し処理を行うことによって簡単に書くことができるのです。
size(400,400);
int i=0;
while(i<5){
ellipse(200,50*(i+1),50,50);
i=i+1;
}
今回の円を書くものを繰り返し処理で書くと、このようになります。
もし円を10個にしたいと思ったら、
黄色線の引かれている部分の数字を「10」に変えるだけで描くことができます。
このように繰り返し処理を行うことで、
数を変更したいと思った時にもすぐに書き換えることができるのも特徴の一つです。
繰り返し処理は同じものを描く際に短い文で済ませることができる。
数を変更したいと思った際にも簡単に書き換えることができる。
ちなみにですがこれをフローチャートで書くと、
このようになります。
条件分岐の内容でフローチャートについても解説してあるので、よかったら上の記事をご覧ください。
繰り返し処理の書き方
それでは、繰り返し処理の必要性がわかったので、次は書き方について説明していきます。
今回は、先ほどの例に似ている
「(400,400)のサイズのキャンバスに、左の円を中心(150,200)にして、直径50の円を横に3つ並べる」
というものを作ると仮定して説明します。
繰り返す条件に使う変数を設定する。
繰り返し処理は、ある条件が満たされている間だけ繰り返されます。
その条件をまずは決めましょう。
繰り返したい回数が決まっている場合は、
「変数に0を入れて、ある値以上になったら処理をやめる」
というのがよく使われます。
それでは今回は、「int i=0;」としておきましょう。
復習
「int」は整数であることを宣言、
「i」は変数であり、他にも「a」など名付けても大丈夫です。
最後は「;」を必ずつけましょう。
繰り返し条件の判定を決める。
次は、繰り返す条件の判定を行う部分を記述します。
今回は、3つの円を書きたいので、3回繰り返すようにします。
while(i<3){
i=i+1;
}
まず、「while」を書くことで、繰り返し処理をすることが宣言されます。
次に、「(i<3)」を書くことで、「i」が3より小さい間はループされるという条件が決まります。
最後に、「I=I+1;」をwhile文内の最後に書くことで、一回処理がされた後に「i」の数字を1だけ大きくしています。
そうすることで「i」の値が、1回処理されると「1」、2回処理されると「1」、3回処理されると「3」になって、4回目の処理を行おうとすると「(i<3)」の条件を満たしていないので繰り返しから抜けることになります。
処理したい内容を書く。
最後に繰り返したい内容を書きます。
今回は円を中心(150,200)から直径50で描きたいので、隣の円との中心点の距離は半径(25)+半径(25)で50あることがわかります。
このことから、150に50ずつ足していけば良いと考えられます。
「i」が一回目のループの値が「0」であることに注意してコードを書くと、
ellipse(150+50*(i),200,50,50);
このようになります。
また、
ellipse(100+50*(i+1),200,50,50);
という書き方や、
ellipse(50*(i+3),200,50,50);
も同じ円をかけます。
このように、同じものを描くとしても複数の書き方があるのが面白かったりします。
(工夫のしがいがあります!)
繰り返し処理の例
最後に、これまで書いてきたものをまとめると、
size(400,400);
int i=0;
while(i<3){
ellipse(150+50*(i),200,50,50);
i=i+1;
}
となります。
また実行結果はこのようになります。
まとめ
今回は、繰り返し処理の必要性とやり方を説明しました。
コードの書き方は人によって変わったりするので、今回の書き方は一つの方法として参考にしてみてください。
関数の定義についても解説しているので、よければこちらもご覧ください。