if文の使い方その3

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

プログラム例

まずは今回学んでいくC#プログラム例を見てみましょう。

using System;

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

			// 入力された値を調べる
			if (nNumber == 0)
			{
				Console.Write("ゼロが入力されました");
			}
			else if (nNumber > 0)
			{
				Console.Write("正の数が入力されました");
			}
			else if (nNumber < 0)
			{
				Console.Write("負の数が入力されました");
			}
			else
			{
				Console.Write("入力値を特定できませんでした");
			}

			Console.ReadLine();
		}
	}
}

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

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

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

VisualStudioのビルド成功画面

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

プログラム実行画面

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

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

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

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

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

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

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

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

さらにもう一度F5キーを押してプログラムを立ち上げます。

最後は「-1」を入力してEnterキーを押します。

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

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

プログラム解説

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

数値の入力

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

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

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

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

入力値の判断

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

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

if ( 条件式その1 )
{
	条件式その1が成立したときに行われる処理
}
else if ( 条件式その2 )
{
	条件式その2が成立したときに行われる処理
}
else
{
	すべての条件式が成立しなかったときに行われる処理
}

上から順に条件式が成立するかどうかを調べます。

「if」「else if」に関係なく、カッコ内の条件式が成立していれば、その後に続く「{」から「}」に囲まれている部分が実行されます。

一度でも条件式が成立したら条件分岐を抜けます。

すべての条件式が成立しなかった場合には、elseの後の「{」から「}」に囲まれている部分が実行されます。

中央部分の「else if ( 条件式 ) { 条件式が成立していたら実行される部分 }」はいくつでも追加することが可能です。

今回のプログラム例では、以下のようになっています。

if (nNumber == 0)
{
	Console.Write("ゼロが入力されました");
}
else if (nNumber > 0)
{
	Console.Write("正の数が入力されました");
}
else if (nNumber < 0)
{
	Console.Write("負の数が入力されました");
}
else
{
	Console.Write("入力値を特定できませんでした");
}
Console.ReadLine();

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

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

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

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

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

しかし、「0」以外の数値を入力してしまった場合には、この条件式が成立しないので、二つ目の条件式に進みます。

二つ目の条件式は、「nNumber > 0」です。

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

「>」というのは、「>」の左辺の値が右辺よりも大きかったら成立という意味があります。

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

しかし、「0」より小さい数値を入力してしまった場合には、ここまでの条件式がすべて成立しないので、三つ目の条件式に進みます。

三つ目の条件式は、「nNumber < 0」です。

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

「<」というのは、「<」の左辺の値が右辺よりも小さかったら成立という意味があります。

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

プログラム例では、整数値が入力されることが前提になっているので、それ以外の数値というのはありえないんですが…。

ここまでのすべての条件式が成立しなかった場合は、elseに続く「{」から「}」に囲まれている部分が実行されます。

そして、どの部分の条件式が成立したとしても「Console.ReadLine」は実行されるので、プログラムが最後に一時停止されるという感じです。

まとめ

これがif文の基本になります。