次の記事
前の記事

開発言語習得のススメ 5日目 練習問題

プログラム2本柱の一方の雄「繰り返し処理」の練習をしてみましょう。
ちなみにもう一本の柱は「条件分岐」。この二本柱の集合でプログラムは成り立っています。

例題1
 画面に1~10の数字を書いてみましょう。

とりあえずコーディングがしやすいVisualStudioを使うことを前提に進めます。
まずは画面上にラベルを一個配置します。
ついでにボタンも一個配置。
そしてボタンを押したらラベルに表示する文字が1,2,3,4,5,6,7,8,9.10~とカウントアップするようにしてみましょう。
ループ処理の基礎は

for(int i = 0; i < 10; i++){
  //処理
}

です。
処理の部分に今回はラベルの文字を変更するコードを用意しましょう。
ラベル名.text = "なんか";
でできます。
ここで問題になるのは、"なんか"の部分にどうやって1~10の文字をセットするかです。
何日か前にちょっとだけ説明しましたが、ラベル名.textの「text」はstring型(文字列型)です。
それに対してiは数値型です。
そのまま、ラベル名.text = i;とやるとエラーが出ます。
そこで数値型のものを文字列型に変換してセットする必要があります。
やり方はいろいろありますが、まあ簡単なのはtoString()という関数を使います。
ラベル名.text = i.toString();とやるとiの内容を文字型に変換してセットしてくれます。
ちなみに、iについてはループするごとに0,1,2,3,4,5,と変化していきます。

補足

ループ条件についてもうちょっと詳しく解説してみたりして。
for(int i = 0; i < 10; i++){
ここの記述をもうちょっと詳しく説明します。
forループは以下のような条件になっています。
for(ループカウンタの宣言とその開始する値の設定 ; ループカウンタがどのような状態の時にループが継続するか ; ループカウンタが一回のループでどう変化するか)
最初の宣言部分 int i = 0はループカウンタとして数値型のiを用意して、値は0から始まる
次がiが10未満の時はループは継続する
そして最後がループ一回ごとにi++する。これはi = i + 1と同じ意味です。

C言語ではiに1加えるという記述をする際には
i = i + 1:
i += 1;
i++:
と様々な書き方ができます。詳しく説明すると微妙に加算されるタイミングが違ったりするんだけど、とりあえずはどれでも一緒

ちなみにiを使うのは神の決めたルールです。

ループの中ではiが1づつ増えていきます。
単純に何かを複数回繰り返したいだけなら使いませんが、ひとつづつ増えていく値を使いたいときとかにiがそのまま使えます。
ループの中でiの値を変更することも可能で、変えた結果、ループの継続に引っかからなくなると次のループは処理されません。
※ループの継続条件は常にチェックされているのではなく、ループの中の処理が一通り終わった時にまだ回るかな?ってチェックされます。


コメント