AngelScript Help

switch

Позволяет выбирать одно из множества возможных значений переменной или выражения и выполнять соответствующий блок кода.

int A = 2; switch (A) { case 1: print("Этот блок выполнится если A равно 1"); break; case 2: print("Этот блок выполнится если A равно 2"); break; }

case

Значение case должно быть вычислено на этапе компиляции. Благодаря этому свойству, при исполнении вместо проверки каждого блока будет сразу осуществлён переход к блоку, который удовлетворяет условию.

break

После первой положительной проверки в case будут выполнены все последующие блоки:

int A = 1; switch(A){ case 1: print("Этот блок выполнится если A равно 1"); case 2: print("Этот блок выполнится если A равно 1 или 2"); case 3: print("Этот блок выполнится если A равно 1 или 2 или 3"); }

Для контроля этого поведения служит break, который прерывает исполнение ближайшего switch:

int A = 1; switch(A){ case 1: print("Этот блок выполнится если A равно 1"); break; case 2: case 3: print("Этот блок выполнится если A равно 2 или 3"); break; case 4: print("Этот блок выполнится если A равно 4"); // break; // в последнем блоке можно опустить ибо логика не изменится }

default

Для случая, когда не выполнился ни один case можно указать действия в блоке default:

switch(A){ case 1: print("Этот блок выполнится если A равно 1"); break; case 2: print("Этот блок выполнится если A равно 2"); break; default: print("Этот блок выполнится если не выполнился ни один case"); }

В одном switch может содержаться максимум один блок default, но располагаться он может на любой позиции. Это поведение можно, к примеру, использовать с перечислениями:

enum MyEnum {A, B, C} int getMyEnumValue(int myInt){ switch(myInt){ case MyEnum::A: return MyEnum::A; // Если myInt не является одним из значений MyEnum, используем MyEnum::B в качестве значения по умолчанию. default: case MyEnum::B: return MyEnum::B; case MyEnum::C: return MyEnum::C; } }
Last modified: 25 December 2024