switch-case 执行时间是可变的吗?

Is switch-case execution time variable?

switch 语句是否在同一执行时间内为任一可能的输入值确定适当的 case 语句? 它是否将输入值与 case 块进行比较,并在找到它正在寻找的值时跳转到适当的 case

考虑下面的例子。 switch 语句对于 input = 1input = 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 树一样,这需要比其他控制值更长的时间来处理某些控制值。他们也可能使用其他策略。

那些在多种可能性中进行选择的人通常会根据必须支持的案例值进行选择。