ゲームプログラマーの悟です
この記事では
・分岐の応用について知りたい
・if文の入れ子などの考え方を知りたい
という人の為に、プログラマーとして実際に現場で仕事し教育担当もしていた悟が
・分岐は入れ子のifと並列のifがある
・今までの組み合わせによってさまざまな表現ができる
を紹介しています
分岐処理の解説を1回目から見たい方は
ぜひ下記の記事も参考にしてみてください▼
では実際に詳細を説明していきます
入れ子のif
if文の中で再度if文を使うことが出来ます
ifの中のifなので、入れ子のifとよく言われています
例えば
・18歳以上の時 成人と表示する
・20歳未満の時 お酒は飲めませんと表示する
こちらをプログラムに落とし込むと
int age = 18;
if(age >= 18){
Console.WriteLine(“成人”);
if(age < 20){
Console.WriteLine(“お酒が飲めません”);
}
}
// 出力結果 : 成人
// お酒が飲めません
このようにifでまず18歳以上かどうかを確認して、
正しい時に再度20歳未満かどうかを入れ子のif文で判定しています
18歳未満の時は何も条件が支持されていないので、
何も表示しないようにしています
入れ子のifはいくつでも入れ子にすることが出来る
if(条件式){
if(条件式){
if(条件式){
if(条件式){
if…
}
}
}
}
ただし、2つ以上の入れ子のifはお勧めしません
理由としては、
・時間がたった時に見返すときプログラムを追うのが困難
・バグが起こりやすい
です
ただし、初心者のうちは気にせずプログラムを書いていくことの方が重要だと思っています
バグが起こったり、管理しにくいと感じたら対策を調べてみましょう!
ちなみに、elseやelse-ifと組み合わせることも可能です
if(条件式){
if(条件式){
if(条件式){
if…
}
}else if(条件式){
if…
}
}else{
}
組み合わせることは可能といえば可能なのですが、
見づらいので多用はお勧めしません
並列のif
あまり本では載っていないというより、私が勝手に教えている時に”並列のif”というものがあります
これは例えば
・18歳未満
・65歳以上
・2つのどちらかを満たすとき、”未成年か高齢者”を表示する
このような場合に使用します
プログラムに落とし込むと
int age = 8;
if(age < 18){
Console.WriteLine(“未成年と高齢者”);
}
if(age >= 65){
Console.WriteLine(“未成年と高齢者”);
}
このように、if文の処理が終わった後にif文を再度使うことを、”並列のif”と呼んでいます
しかし、今回のように二つのif文の中で同じ処理をするのはお勧めしません
ですが、こちらも初心者のうちは気にせずにプログラムを組んでください
お勧めしないことは頭の片隅に置いておいてください!
入れ子のifと組み合わせて使うことが出来る
if(条件式){
if(条件式){
if(条件式){
if…
}
}
}
if(条件式){
if(条件式){
if(条件式){
if…
}
}
}
elseとelse-ifも組み合わせることが可能
if(条件式){
if(条件式){
if(条件式){
if…
}
}else if(条件式){
if…
}
}else{
}
if(条件式){
if(条件式){
if(条件式){
if…
}
}else if(条件式){
if…
}
}else{
}
ただ、非常に見にくくなるのでお勧めはしません
あまり階層と分岐は多くしないようにしましょう
段々とプログラムが牙を向いてきます
経験あるのみ!
最後に
今回は、if文をさらに深堀する為の”入れ子のif”と”並列のif”を紹介しました
ここまで来ると、大体のことはプログラムで表現することが可能だと思います
身の回りにあるものをプログラムに落とし込むならどうするか?を
考えてみるとよい練習になると思います
こちらの記事で具体的な考え方を紹介しています▼
コメント