複数の条件によって処理する同様の処理を、if…else if文とswitch文のそれぞれで記述して比較してみる。
if…else if文の場合
class MainClass
{
static void Main()
{
Console.Write("3桁以下の正の実数Rを入力>>a=");
double a = Double.Parse(Console.ReadLine());
if (a >= 1000)
{
Console.WriteLine("3桁を超えています");
}
else if (a >= 100)
{
Console.WriteLine(a / 100);
}
else if (a >= 10)
{
Console.WriteLine(a / 10);
}
else if (a > 0)
{
Console.WriteLine(a);
}
else
{
Console.WriteLine("0または負の数です");
}
}
}
処理をswitch文の場合
class MainClass
{
static void Main()
{
Console.Write("3桁以下の正の実数Rを入力>>a=");
double a = Double.Parse(Console.ReadLine());
switch(true)
{
case a>=1000:Console.WriteLine("3桁を超えています");
break;
case a>=100:Console.WriteLine(a/100);
break;
case a>=10:Console.WriteLine(a/10);
break;
case a>0:Console.WriteLine(a);
break;
default:Console.WriteLine("0または負の数です");
break;
}
}
}
結果
今の場合switchの方が若干短くて読みやすい気がする。
(switch文の方は定数値が必要とエラーになりましたが、まだ定数値がよくわかっていなかったりします。なのでとりあえず動いたことでよしとしました。)
0 コメント:
コメントを投稿