【C#】初心者向け 分岐処理 else else-if 解説 2回目

ゲームプログラマーの悟です

この記事では

・if文のelseをどう使えばいいの?
・if文のelse ifはどう使えばいいの?

という人の為に、プログラマーとして実際に現場で仕事し教育担当もしていた悟が

・elseの基本的な使い方と考え方

・else ifの基本的な使い方と考え方

を解説していきます

if文の使い方第一回をまだ見ていない方は
ぜひ下記の記事も参考にしてみてください▼

では詳細を説明していきます

前回の記事でif文を使用して、処理を分岐させるとはどうやるのかを解説しました

しかし、前回の知識ではまだ問題があります

例えば、

・18才以上は成人と表示する

・それ以外は未成年と表示する

上記のようにプログラムをif文で組むことはできるでしょうか?

int age = 10;

if(18 <= age){
	Console.WriteLine(“成人”);
}

Console.WriteLine(“未成年”);

このようなプログラムになりますでしょうか?

しかし、これではif文の中が処理され”成人”が表示されると、中かっこの終わりから
また順次処理が始まり”未成年”が表示されてしまいます

順次処理と分岐処理のイメージがつかめないと感じたら
こちらの記事も参考にしてみてください▼

この時に使用するのが”else”になります

まずは実際に見てみましょう

int age = 10;

if(18 <= age){
	Console.WriteLine(“成人”);
}else{
	Console.WriteLine(“未成年”);
}

このようにif文で処理した後にelseをつなげて書くと、
if文の条件式がfalseの時、未成年と表示されるようになります

仮にageの値を18に変更すると、
”成人”と表示されます

else の考え方

elseを使うときが、if文の条件式が当てはまらなかった時に処理させたいことがある時に使ってみましょう!

悟

elseはよく使うものなので必ず押さえておきましょう!!

さて、elseによってif文が正否によって分岐することが分かったと思います

では、次の文章を組もうとしたらどうでしょうか?

・65歳以上は高齢者
・18才以上は成人

この文章を今の知識で組むとどうなるでしょうか?

elseを使うのか、if文だけでいいのか?

実際に見てみましょう

int age = 65;

if(65 <= age){ 
	Console.WriteLine(“高齢者”);
}

if(18 <= age){ 
	Console.WriteLine(“成人”);
}

// 出力結果 : 高齢者
//	      成人

動いているように見えますがこれでは”成人”と”高齢者”の両方が出力されてしまいます

これを解決するのがelse-if文になります

int age = 65;

if(65 <= age){
	Console.WriteLine(“高齢者”);	
}else if(18<= age){
	Console.WriteLine(“成人”);	
}

// 出力結果 : 高齢者

こうすることによって、”高齢者”だけが表示されました

ageを20などに変えてみると今度は”成人”だけが表示されると思います

else-if文はif文が違っている時に条件式が判定され正しい時に処理が動きます

else-if 注意点

条件式の順番によって処理が意図したように動かない状態になってしまうことがあります

先ほどの例を元に条件式を入れ替えてみます

int age = 100; // 100歳に変更

if(18 <= age){
	Console.WriteLine(“成人”);// 常にこちらが表示されてしまう	
}else if(65<= age){// こちらに入る前にif文を抜けてしまう
	Console.WriteLine(“高齢者”);	
}

このように18以上の段階で最初のif文が正しい判定なので、
else-ifがチェックされずif文を抜けてしまいます

悟

ややこしいですがelse-ifを使うときは気を付けましょう!

else-if文はいくつでも連結することが可能です

int age = 18;

if(100 <= age){
	Console.WriteLine(“超高齢者”);	
}else if(65 <= age){
	Console.WriteLine(“高齢者”);	
}else if(40 <= age){
	Console.WriteLine(“中年者”);	

}else if(18 <= age){
	Console.WriteLine(“成人”);
}

さらにelseも付け加えることが可能です

int age = 18;

if(100 <= age){
	Console.WriteLine(“超高齢者”);	
}else if(65 <= age){
	Console.WriteLine(“高齢者”);	
}else if(40 <= age){
	Console.WriteLine(“中年者”);	

}else if(18 <= age){
	Console.WriteLine(“成人”);
}else{
	Console.WriteLine(“未成年”);  // elseとして追加した文章
}

elseはどこにも当てはまらない時に実行されるので、
else-ifとelse-ifの間に入ることはありません

今回はif文の派生形であるelseとelse-ifを紹介しました

今回の分岐処理を知ることによって問題解決能力を鍛えるのに有効な
日常のプログラミングを考えてみることもより具体的になると思いますので
マスターしていきましょう!

問題解決能力とは何かと興味を持たれましたら
下記の記事も参考にしてみてください▼

if文の解説はまだ続きますので是非次回の記事もよろしくお願いします

次回はこちら▼

コメント

タイトルとURLをコピーしました