switch-case 执行时间是可变的吗?
Is switch-case execution time variable?
switch
语句是否在同一执行时间内为任一可能的输入值确定适当的 case
语句?
它是否将输入值与 case
块进行比较,并在找到它正在寻找的值时跳转到适当的 case
?
考虑下面的例子。 switch
语句对于 input = 1
或 input = 256
是否同时执行,还是对于后一个值执行得更慢?
int output, input = 256;
switch( input )
{
case 1:
output = 1;
break;
case 2:
output = 2;
break;
case 4:
output = 3;
break;
case 8:
output = 4;
break;
case 16:
output = 5;
break;
case 32:
output = 6;
break;
case 64:
output = 7;
break;
case 128:
output = 8;
break;
case 256:
output = 9;
break;
default:
output = 0;
break;
}
Does switch
statement execute in same time for input = 1
or input = 256
or does it execute slower for latter value?
未指定语言。
实现通常使用跳转表实现一些switch
语句,这使得switch
无论控制值。但是,它们也可能使用多个分支,就像 if
/ else if
树一样,这需要比其他控制值更长的时间来处理某些控制值。他们也可能使用其他策略。
那些在多种可能性中进行选择的人通常会根据必须支持的案例值进行选择。
switch
语句是否在同一执行时间内为任一可能的输入值确定适当的 case
语句?
它是否将输入值与 case
块进行比较,并在找到它正在寻找的值时跳转到适当的 case
?
考虑下面的例子。 switch
语句对于 input = 1
或 input = 256
是否同时执行,还是对于后一个值执行得更慢?
int output, input = 256;
switch( input )
{
case 1:
output = 1;
break;
case 2:
output = 2;
break;
case 4:
output = 3;
break;
case 8:
output = 4;
break;
case 16:
output = 5;
break;
case 32:
output = 6;
break;
case 64:
output = 7;
break;
case 128:
output = 8;
break;
case 256:
output = 9;
break;
default:
output = 0;
break;
}
Does
switch
statement execute in same time forinput = 1
orinput = 256
or does it execute slower for latter value?
未指定语言。
实现通常使用跳转表实现一些switch
语句,这使得switch
无论控制值。但是,它们也可能使用多个分支,就像 if
/ else if
树一样,这需要比其他控制值更长的时间来处理某些控制值。他们也可能使用其他策略。
那些在多种可能性中进行选择的人通常会根据必须支持的案例值进行选择。