Идея оператора switch
состоит в том, что компилятор может создавать код, который проверяет только выражение switch
во время выполнения и тем самым определяет местоположение, к которому нужно перейти.
Если метка case
может быть выражением, которое не является константой, она должна будет оценить все такие выражения case
, чтобы увидеть, существует ли такое, которое соответствует. Таким образом, вместо оценки одного выражения, он должен будет оценить n
выражений, где n
- это число case
меток для этого switch
.
Вся идея switch
состоит в том, чтобы сделать это наоборот, чем вы. Поместите переменное выражение a
в сам switch
и поместите константы, такие как 'c'
в регистр.