第6回 C#入門 C#プログラミングでfor文のループ処理について理解しよう!
今回はですね、for文について説明したいと思います。今回もC#を使ってヴィジュアルスタジオで説明致します。for文は前回のwhile文と仕組みは似ていて、繰り返し処理を行うものです。実際にまずプログラムの例を記載して見ます。
基本の文法
for(変数 = 初期値; 繰り返しが続く条件; カウント)
{
繰り返したい処理;
}
このように記載します。順番に説明していきます。といっても、ほとんど前回紹介したwhile文と同じで、繰り替えしたい処理を中括弧の中に記載します。while文と同じくずっと繰り替えす処理を行うという訳ではなく。条件式があります。この条件式を満たしている場合に繰り返し処理をします。ただ、ここで注意すべき点は見てわかります通り。この条件式内はセミコロンで区切られているように三文あります。まずこの最初の文が条件で使用する回数の初期化をしています。次の文は繰り返す条件の式です。ここはWhile文と同じです。最後の文は後処理と言われるもので、繰り返し処理が終了したときに実行されるものです。ここでは一般的にカウントアップするもの、つまりインクリメントやデクリメントしています。では基本情報が終了しましたので実際にプログラムをみてみましょう。
例えばみなさんが一度はやったことがある。
1+2+3+4+5+6+7+8+9+10
これを少し複雑に1〜10の奇数番号だけの足し算をしてみましょう。単純にこれをプログラムでコーディングしようと思いますと。このようにコーディングできると思います。
i = 1 + 3 + 5 + 7 + 9;
今プログラムの例として1〜10までの奇数の足し算と決めていますが、実際エンジニアになった場合は8〜1000までの奇数の足し算の計算してくれなどと言われたりします。こうなってしまいますとこのプログラムの書き方では限度がありますしヒューマンエラーが起きてしまう可能性もあります。ただこれをfor文で書くととても簡単になります。ちょっとわかりやすくするためにこのようにワザと少し難しく書いてみます。
namespace test
{
class Program
{
static void Main(string[] args)
{
int i = 0;
i = i + 1;
i = i + 3;
i = i + 5;
i = i + 7;
i = i + 9;
Console.WriteLine(i);
}
}
}
感の言い方はもうすでにお気づきでしょうが
1〜10までの奇数の足し算はこのようにもかけます。これはi=1+3+5+7+9と同じ意味です。これで実行してみます。
すると25と出力されました。実際にfor文を使って書いて見たいと思います。
このように記載できます。
namespace test
{
class Program
{
static void Main(string[]args)
{
int k = 0;
for(int n = 1; n <= 10; n=n+2)
{
k= k + n;
}
Console.WriteLine(k);
}
}
}
これで実行してみますとこのように
25と同じ出力結果がでます。どういうことかと言いますと、このnがintで宣言され初期値1を代入されています。次に繰り返し処理を見てみましょう。はじめはnの部分には1が代入されています。次に条件見て見ますとnが10以下です、今nは1ですので条件を成立しています。ですのでこの中括弧の中の処理を実行します。ここで繰り返し処理のk= k + n;これが処理されます。1回目ですので、nに1をいれてk= k + 1;が処理されます。よく見てみますと最初に私が記載したプログラムと同じになっていることが確認できます。その後にfor文の条件式の後処理と呼ばれる、処理を行います。ここではnがnプラス2されていますね。これは中括弧の中の処理が完了後に処理されます。そうすると、もうすでにお気づきの方は居られるかもし得れませんが、nにはnプラス2がされた値が代入された状態、つまりnには3が代入されます。次に条件式nが10以下ですので、今nは3ですので条件を成立しています。ですのでこの中括弧の中の処理を実行します。ここで繰り返し処理のk= k + n;これが処理されます。これをnが10より大きくなるまで繰り返し、最後nに11が代入された状態で終了になります。
このforは次のような意味でしたね。
- nは1から始まる
- nが10以下の間は繰り返し続ける
- nは2ずつ増える
もうすでにお気づきでしょうが、こうFor文を利用することで繰り返し処理はすごく楽になります。試しに最初に述べた8〜1000までの足し算を計算してみましょう。この後に答えを書きますが、動画を止めて実際に皆さんもコーディングをしてみて実際に体感してみてください。
namespace test
{
class Program
{
static void Main(string[]args)
{
int i = 0;
for(int n= 8; n <= 1000; n++)
{
i = i + n;
}
Console.ReadKey(i);
}
}
}
このように、この初期値と条件式を変更するだけで
膨大な計算ができます。
これで実行してみましょう。
そうするとこのように出力されました。
はい、今回はfor文についてということで
1〜10までの奇数番号の足し算を例にして
for文の仕組みから、実際にfor文を用いて繰り返し処理を行って見ました。
次回の講座ではデータをまとめる配列についての内容となっています是非ご覧ください。
以上でC#基礎講座を終了と致します。ご静聴ありがとうございました。(๑╹ω╹๑ )
コメント