Js switch: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
== Краткое описание ==
== Краткое описание ==
Конструкция <code>switch</code> заменяет собой сразу несколько <code>if(...)</code>.Она представляет собой более наглядный способ сравнить выражение сразу с несколькими вариантами.  
Конструкция <code>switch</code> заменяет собой сразу несколько <code>if(...)</code>. Она представляет собой более наглядный способ сравнить выражение сразу с несколькими вариантами.


== Синтаксис ==
== Синтаксис ==
Стандартная конструкция выглядит таким образом:
Стандартная конструкция выглядит таким образом:
<pre style="color: purple">
<pre style="color: purple">
switch (state) {
switch (var) {
     case 'value1':
     case 'value1':
         break;
         break;
Строка 15: Строка 15:
};
};
</pre>
</pre>
*Переменная <code>state</code> проверяется на строгое равенство первому значению <code>value1</code>, затем второму <code>value2</code> и так далее.
*Переменная <code>var</code> проверяется на строгое равенство первому значению <code>value1</code>, затем второму <code>value2</code> и так далее.
*Если соответствие установлено – <code>switch</code> начинает выполняться от соответствующей директивы <code>case</code> и далее, до ближайшего <code>break</code> (или до конца <code>switch</code>).
*Если соответствие установлено – <code>switch</code> начинает выполняться от соответствующей директивы <code>case</code> и далее, до ближайшего <code>break</code> (или до конца <code>switch</code>).
*Если ни один <code>case</code> не совпал – выполняется (если есть) вариант <code>default</code>.
*Если ни один <code>case</code> не совпал – выполняется (если есть) вариант <code>default</code>.


== Пример использования ==
== Пример использования ==
Наглядным примером может служить определение набора действий в зависимости от выбранного значения параметра <code>state</code> (например из выпадающего списка):
Наглядным примером может служить определение уникального набора действий в зависимости от выбранного значения параметра <code>state</code> (например настройки из выпадающего списка):
<pre style="color: purple">
<pre>
switch (state) {
switch (state) {
     case 0: //частота вращения определена из сигнала
     case 0: //частота вращения определена из сигнала

Текущая версия от 14:40, 12 сентября 2023

Краткое описание

Конструкция switch заменяет собой сразу несколько if(...). Она представляет собой более наглядный способ сравнить выражение сразу с несколькими вариантами.

Синтаксис

Стандартная конструкция выглядит таким образом:

switch (var) {
    case 'value1':
        break;
    case 'value2':
        break;
    case 'value3':
        break;
    default:
};
  • Переменная var проверяется на строгое равенство первому значению value1, затем второму value2 и так далее.
  • Если соответствие установлено – switch начинает выполняться от соответствующей директивы case и далее, до ближайшего break (или до конца switch).
  • Если ни один case не совпал – выполняется (если есть) вариант default.

Пример использования

Наглядным примером может служить определение уникального набора действий в зависимости от выбранного значения параметра state (например настройки из выпадающего списка):

switch (state) {
    case 0: //частота вращения определена из сигнала
        if (imp.FREQ() <= imp.FREQNESS()) {
            gtl.log.info("Частота вращения меньше рекомендуемой", "Минимально рекомендуемая частота: " + imp.FREQNESS());
            gtl.diagnostic.stop(); //принудительная остановка диагностики
        };
        break;

    case 1: //частота вращения фиксированная
        spen.frequency = imp.standart_width();
        spen.lines = imp.standart_lines();
        break;

    case 2: //частота вращения из внешнего источника
        gtl.diagnostic.interval = acq_time;
        break;
};
В данном примере для каждого значения переменной state определен свой порядок действий (расчетов).