Here is my code:
int i = 6;
Stopwatch sw = Stopwatch.StartNew();
sw.Start();
switch (i)
{
case 0:
Console.WriteLine("b");
break;
case 1:
Console.WriteLine("c");
break;
case 2:
Console.WriteLine("d");
break;
case 3:
Console.WriteLine("e");
break;
case 4:
Console.WriteLine("f");
break;
case 5:
Console.WriteLine("g");
break;
case 6:
Console.WriteLine("h");
break;
case 7:
Console.WriteLine("a");
break;
}
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
sw.Restart();
if (i == 0)
{
Console.WriteLine("b");
}
else if (i == 1)
{
Console.WriteLine("c");
}
else if (i == 2)
{
Console.WriteLine("d");
}
else if (i == 3)
{
Console.WriteLine("e");
}
else if (i == 4)
{
Console.WriteLine("f");
}
else if (i == 5)
{
Console.WriteLine("g");
}
else if (i == 6)
{
Console.WriteLine("h");
}
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
I was measuring this two code blocks in c# and i see switch case gives h,24977 ticks and if else statements giving h,368 ticks. I was expecting that switch case will be take less time than if else statements. Why switch case is slower than if else can you explain ? Thank you.