目次
概要
条件分岐はif文とswitch文で実装ができる。
ソースコード
// 条件を満たした時に処理を行う
int hp = 100;
if (hp > 0) {
Console.WriteLine("プレイヤーはまだ戦闘可能です");
}
// 条件を満たしていた時、そうでない時で処理を分岐させる
int mp = 20;
if (mp > 10) {
Console.WriteLine("スキルを発動します");
} else {
Console.WriteLine("スキルの発動に必要なMPが足りません");
}
// 特定の条件を満たすものだけ処理を行う
int score = 100;
if (score > 80) {
Console.WriteLine("Rank S");
} else if (score > 60) {
Console.WriteLine("Rank A");
} else if (score > 40) {
Console.WriteLine("Rank B");
} else if (score > 20) {
Console.WriteLine("Rank C");
} else {
Console.WriteLine("Rank D");
}
String property = "火属性";
switch (property) {
case "火属性":
Console.WriteLine("攻撃時に炎が爆発");
break;
case "水属性":
Console.WriteLine("攻撃時に水しぶきが飛ぶ");
break;
case "雷属性":
Console.WriteLine("攻撃時に青白い光が走る");
break;
case "氷属性":
Console.WriteLine("攻撃時に冷気が飛び散る");
break;
case "龍属性":
Console.WriteLine("攻撃時に赤黒い光が飛ぶ");
break;
default:
Console.WriteLine("不明な属性");
break;
}
実行結果
プレイヤーはまだ戦闘可能です
スキルを発動します
Rank S
攻撃時に炎が爆発
詳細
if文
if文の基本形は以下の通り。
if (/* 条件式 */) {
// 条件式が真だった場合に行われる処理
}
今回の例だと以下の部分
int hp = 100;
if (hp > 0) {
Console.WriteLine("プレイヤーはまだ戦闘可能です");
}
これはどういうことかというと、
『「hp > 0」(hpが0より大きい)を満たす時だけ以下の処理を行う』ということになる。
Console.WriteLine("プレイヤーはまだ戦闘可能です");
else文はif文の条件を満たさない時に行われる処理。
if (/* 条件式 */) {
// 条件式を満たす場合に行われる処理
} else {
// if文に書かれた条件式を満たさなかった場合に行われる処理
}
更に、else-if文が存在する。
これはif文の条件式を複数設定し、どれか一つをだけの処理を行いたい時に実装する。
if (/* 条件式1 */) {
// 条件式1を満たす場合に行われる処理
} else if (/* 条件式2 */) {
// 条件式2を満たす場合に行われる処理
} else if (/* 条件式3 */) {
// 条件式3を満たす場合に行われる処理
} else {
// 上記のif文に書かれた条件式を全て満たさなかった場合に行われる処理
}
Switch文
Switc文はelse-if文に似たところがある。
switch (/* 変数 */) {
case /* 変数の想定値 */:
// 「変数」が「変数の想定値」と同じだった場合の処理
break;
case /* 変数の想定値 */:
// 「変数」が「変数の想定値」と同じだった場合の処理
break;
default:
// 上記のどの「想定値」にも当てはまらなかった場合の処理
break;
}
今回はelse-if文と大差がないように見えるが、今後の列挙体が出てきた時、列挙体の値を漏れなく設定できるため、列挙体が使われる時にswitch文が使われる傾向にある。