if文の使い方その2

今回のC#プログラミング学習は、前回の続きで、分岐処理のif文を学んでいきます。

プログラム例

まずは今回学んでいくC#プログラム例を見てください。

using System;

namespace Sample
{
	internal class Program
	{
		static void Main(string[] args)
		{
			Console.Write(" 0 を入力:");
			int nNumber = int.Parse( Console.ReadLine() );

			// 入力された値を調べる
			if (nNumber == 0)
			{
				Console.Write("ゼロが入力されました");
			}
			else
			{
				Console.Write("ゼロ以外が入力されました");
			}

			Console.ReadLine();
		}
	}
}

プログラム例をダウンロードするにはここをクリックします。

ダウンロードしたZIPファイルを解凍して、「Sample.sln」を開くとVisualStudioが立ち上がってきます。

ビルドメニューから「ソリューションのビルド」を選択し、ビルドします。

VisualStudioのビルド成功画面

ビルドが成功したら、F5キーを押してプログラムを動かします。

プログラム実行画面

0の入力を促されるので、「0」を入力しEnterキーを押します。

0を入力してEnterキーを押した画面

すると「ゼロが入力されました」と表示されるので、Enterキーを押すとプログラムが終了します。

今回は分岐処理なので、もう一度F5キーを押してプログラムを立ち上げます。

ちなみにこの時点で、何も入力しないでEnterキーを押した場合は、例外処理が発生してしまうので、必ず何らかの数値を入力します。

今度は「5」を入力してEnterキーを押します。

5を入力してEnterキーを押した画面

すると、今度は「ゼロ以外が入力されました」と表示されるので、Enterキーを押すとプログラムが終了します。

プログラム解説

上記のプログラム例について解説します。

数値の入力

まずは、ゼロの入力を促すメッセージを表示し、ユーザーが入力した数値を受け取ります。

Console.Write(" 0 を入力:");
int nNumber = int.Parse( Console.ReadLine() );

ユーザーからの入力は、以前学習したように「Console.ReadLine」で行いますが、今回は、入力された文字を数値として扱っていきたいので、「int.Parse」のカッコに入れて使っています。

「int.Parse( Console.ReadLine() )」とすることで、int型の変数で数値を受け取ることができます。

入力値の判断

次に、入力された値をif文で判断し、その後の処理を分けます。

今回学習するif文のパターンは以下のような感じです。

if ( 条件式 )
{
	条件が成立したときに行われる処理
}
else
{
	条件が成立しなかったときに行われる処理
}

もし、カッコ内の条件式を満たしていた場合は、その後に続く「{」から「}」に囲まれている部分が実行されます。

そうでない場合は、elseの後の「{」から「}」に囲まれている部分が実行されます。

今回のプログラム例では、以下の部分ですね。

if (nNumber == 0)
{
	Console.Write("ゼロが入力されました");
}
else
{
	Console.Write("ゼロ以外が入力されました");
}
Console.ReadLine();

if文で変数nNumberを評価します。

条件式は「nNumber == 0」です。

この条件式は、変数nNumber内の数値がゼロかどうかを調べるものです。

「==」というのは、「==」の左辺と右辺が等しかったら成立という意味があります。

なので、ユーザーが「0」を入力した場合は、変数nNumberの値も「0」になるので、条件式が成立し、「Console.Write("ゼロが入力されました")」が実行されます。

しかし、「0」以外の数値を入力してしまった場合は、if文が成立せず、前回のプログラム例では、何も表示されませんでした。

今回はその部分を、else以降がカバーしています。

if文が成立しなかったら、elseに続く「{」から「}」に囲まれている部分が実行されるので、0以外の数値が入力された場合は、「Console.Write("ゼロ以外が入力されました")」が実行されます。

そして、if文が成立してもしなくても、「Console.ReadLine」は実行されるので、プログラムが最後に一時停止されるという感じです。

まとめ

少しずつif文らしくなってきました。