初めてのC#③
初めてのC# 第3回
みなさんこんにちは!初めてのC#第3回です。第2回はこちら
今回は前回に引き続き、繰り返し②から配列、メソッドを扱います。
この部分ができるようになると中級者に近づけます。是非サンプルコードを使って練習してみてください。
初級編~繰り返し②~
前回の繰り返しはforでしたが、今回はwhileを勉強していきます。
forは回数を指定して繰り返し処理を実装しましたが、whileは条件を設定し、その条件が満たされている間繰り返しを行います。
コードは次のように記述します。
public class Sample3 { public static void Main(b string[] args ) { int count = 0; while(count < 5) { System.Console.WriteLine( "count = " + count ); count++; } } }実行すると、
count = 0; count = 1; count = 2; count = 3; count = 4;このように表示されたはずです。
whileは()の条件がtrueのとき、{}の中に記述した内容を実行し、これを繰り返します。
forとwhileの使い分けは大まかにまとめると次のようになります。
- for
- while
繰り返す回数が事前に分かっているとき
繰り返す回数が不明
繰り返し処理をforで実装出来たら十分です。
初級編~配列~
次は配列の学習をしましょう。
配列とは何でしょうか?また、変数との違いは何でしょうか?
変数は値を入れておく箱だと説明しました。この箱は何個設置しても問題はありません。しかし、10個や100個といった量の変数を作成するのは不便ですし、処理を書く際に毎回色々な変数名を指定するのは面倒ですよね。
ここで配列の出番です。配列は変数の箱が連なっているもので、それぞれに番号がついています。
例えばsampleという配列を用意すると、sampleの1番目,2番目,3番目、、、というように指定をします。
試しにコードを書いてみましょう。
public class Sample3 { public static void Main( string[] args ) { int[] sample = new int[5]; smaple[0] = 1; sample[1] = 2; sample[2] = 3; sample[3] = 4; sample[4] = 5; for(int i=0;i<5;i++) { System.Console.WriteLine( sample[i] ); } } }このように記述し実行すると、
1 2 3 4 5と出力されたはずです。このようにsampleという1個の名前だけで5の値を保存できるようになりました。
ちなみに今回はわざわざサンプルのように記述しましたが、実際は
public class Sample3 { public static void Main( string[] args ) { int[] sample = new int[5]{ 1, 2, 3, 4, 5 }; for(int i=0;i<5;i++) { System.Console.WriteLine( sample[i] ); } } }このように記述します。
配列の宣言の仕方は変数と似ていますが少し異なりますね。新しく「new」を使っていますね。これはインスタンス化と言われるものです。
正直この辺を追求すると難しいので今回は扱いません。
とりあえず、こうやって書くと動くと覚えておいてください。
使い方は、「配列の型、配列名、=、new、配列数」です。配列は最初に用意する数を指定します。今回のサンプルは5個を用意しています。
言語によって異なりますが、配列の順番は「0,1,2,3,、、、」となっています。1からではないので注意してください。
なお初期値を設定する場合は、「配列の型、配列名、=、new、配列数、{ 初期値 }」と記述します。
配列のイメージは、数学で学習する数列が一番近いと思います。
例えば、「an = n + 1」であれば、
public class Sample3 { public static void Main( string[] args ) { int[] a = new int[10]; for(int i=0;i<10;i++) { a[i] = i + 1; } for(int i=0;i<10;i++) { System.Console.WriteLine( "a[" + i + "] = " + a[i] ); } } }これで、「an = n + 1」の数列を初項から10個作成し、表示することができたとおもいます。
このように連続するデータを扱うときは配列を使用しましょう!
初級編~メソッド~
最後はメソッドについてです。これは別の言語では関数などということもあります。
メソッド化をざっくり言うと「同じ処理はまとめよう」です。
コードを書いていくと同じような処理がたくさん出てきます。毎回同じ処理を書くのは非効率ですよね。なのでメソッド化をしてまとめるんです!
例えば
public class Sample3 { public static void Main( string[] args ) { int[] a = new int[5] { 1, 2, 3, 4, 5 }; int[] b = new int[5] { 6, 6, 5, 3, 5 }; int[] c = new int[5] { 2, 7, 3, 3, 5 }; int answer = 0; for(int i=0;i<5;i++) { answer += a[i]; } System.Console.WriteLine( "a = " + ans ); answer = 0; for(int i=0;i<5;i++) { answer += b[i]; } System.Console.WriteLine( "b = " + ans ); answer = 0; for(int i=0;i<5;i++) { answer += c[i]; } System.Console.WriteLine( "c = " + ans ); } }これは配列の合計を求めるプログラムですが、合計の処理は同じなのに3箇所で書いていますよね。これだと長くなってしまい見づらくなってますね。
ここでメソッド化です。次のように記述します。
public class Sample3 { public static void Main( string[] args ) { int[] a = new int[5] { 1, 2, 3, 4, 5 }; int[] b = new int[5] { 6, 6, 5, 3, 5 }; int[] c = new int[5] { 2, 7, 3, 3, 5 }; System.Console.WriteLine( "a = " + Sum( a ) ); System.Console.WriteLine( "b = " + Sum( b ) ); System.Console.WriteLine( "c = " + Sum( c ) ); } public static int Sum( int[] x ) { int answer = 0; for(int i=0;i<5;i++) { answer += x[i]; } return answer; } }これを実行しても同じ結果が得られたと思います。このようにメソッド化することでコードが短く見やすくなります!!
今回は配列の合計を計算する部分をメソッド化しました。メソッド名はSumです。
メソッドについては説明すると長くなりそうですが頑張りましょう!
まず、メソッドの部分は
public static int Sum( int[] x ) { int answer = 0; for(int i=0;i<5;i++) { answer += x[i]; } return answer; }です。「public」と「static」については後日にします。「public」と「static」の後ろの部分でメソッドの戻り値の型とメソッド名を記述します。
戻り値というのは、メソッドの処理が終わったときに呼び出しもとに返す値のことです。今回は整数値を返すのでintを指定しています。
ちなみに戻り値を指定しないときのメソッドは「void」を指定します。
次に、メソッド名の後ろの「( )」の中に書いていものは引数といい、メソッドを呼び出すときにデータを渡すときに使います。今回は配列の合計を求めたいので「整数型の配列」を指定しています。この引数はこのメソッドの中でのみ使える変数となります。
処理を記述し、値を返すときには「return」を使い、その後ろに返したい値を記述します。今回は、合計をint型の変数answerに代入しているので、「return answer」と記述します。
作成したメソッドを呼び出すときは「メソッド( 参照する値 )」です。参照する値については、メソッドに引数がない場合は空欄で大丈夫です。
メソッド化のメリットはコードを簡略化できることです。コードも短くなりますし、メソッド名を付けることでその行のコードが何を処理しているのか分かりやすくなります!
なるべくメインメソッドは見やすくしたいですからね。
まとめ
ということで今回は「繰り返し」と「配列」、「メソッド」の学習を行いました。
後半の内容は複雑なものなので1回で理解するのは難しいと思います。そのためサンプルコードを改良するなどして実際に試してみてください。
そろそろ初心者講座とは言いにくい内容になってきましたが、この調子で頑張りましょう。
今回はこの辺で、ではまた!