今回の記事の内容
プログラムが長くなり行数が3桁とかになってくると、管理などの全体の流れが把握しにくくなってきます
メソッドを使用して処理をまとめて、それに名前をつけていつでも呼び出せるようにプログラムを組んでいく流れの仕組みを知る記事です
メソッドとは
処理を分けてそれぞれをメソッドにまとめて、プログラムの流れを把握しやすくする
何回も出てくるメソッドに名前をつけて、プログラムを短くする
メソッドに値を渡すことを引数
メソッドの処理結果を呼び出し元に渡すことを戻り値
大きく分けて3つのパターンがあります
引数なし、戻り値なし
internal class Program { //メソッド定義 static void Slime() { Console.WriteLine("スライムがあらわれた!!"); } static void Main(string[] arge) { //メソッド呼び出し Slime(); } }
ここではSlimeというメソッドを作っています
引数なし、戻り値なしのメソッドの書き方
void メソッド名() { メソッド処理; }
上記のプログラムでは
void=戻り値なし
Slime=メソッド名
()=引数なし
と、なります
引数なしのメソッドの呼び方
メソッド名()
最後にSlime()で呼び出しています
引数あり、戻り値なし
internal class Program { //メソッド定義 static void Slime(string slimebattle) { Console.WriteLine("スライムがあらわれた!!"); if (slimebattle == "先制攻撃") { Console.WriteLine(slimebattle + "で15ダメージ与えた"); } else if (slimebattle == "背後をとられた") { Console.WriteLine(slimebattle + "3ダメージ受けた"); } else { Console.WriteLine("逃げた"); } } static void Main(string[] arge) { //メソッド呼び出し Slime("先制攻撃"); } }
引数あり、戻り値なしのメソッドの書き方
void メソッド名(型名 変数名、 型名 変数名...) { メソッドの処理; }
上記のプログラムでは
void=戻り値なし
Slime=メソッド名
引数の型=string
引数の変数名=slimebattle
と、なります
Slime("先制攻撃")でメソッドを呼び出した場合
slimebattleが"先制攻撃"となり
「slimebattle + で15ダメージ与えた」が、コンソールに出力されます
Slime("背後を取られた")でメソッドを呼び出した場合
slimebattleが"背後を取られた"となり
「slimebattle + 3ダメージ受けた」が、コンソールに出力されます
Slime("逃げた")でメソッドを呼び出した場合
slimebattleが"逃げた"となり
「逃げた」が、コンソールに出力されます
引数あり、戻り値あり
internal class Program { //メソッド定義 static int Slime(string slimebattle) { Console.WriteLine("スライムがあらわれた!!"); int hp = 100; if (slimebattle == "先制攻撃") { Console.WriteLine(slimebattle + "で20ダメージ与えた"); hp = 20; } else if (slimebattle == "クリティカル") { Console.WriteLine(slimebattle + "で100与えた"); hp = 100; } else { Console.WriteLine("逃がした"); hp = 0; } return hp; } static void Main(string[] args) { int hpmax = 100; Console.WriteLine("HPは" + hpmax + "です"); int hp = Slime("先制攻撃"); hpmax -= hp; Console.WriteLine("残りHPは" + hpmax + "です"); } }
上記プログラムでは→と、出力されます
引数あり、戻り値ありのメソッドの書き方
戻り値の型 メソッド名(型名 変数名, 型名 変数名...) { メソッドの処理; }
int hp = Slime("クリティカル");にすると→こう出力
int hp = Slime("逃がした");と記述の場合→