If,While, For, Switch | Управление потоком DART

If,While, For, Switch | Изучение управления потоком
If,While, For, Switch | Изучение управления потоком

Привет, появилось желание делиться собранной информацией, которую сам только изучил, тем самым делаю структурирование знаний и делюсь ими, может кто-то на том же пути, где и я, вместе легче!

Если вы на пути изучения Flutter или вам просто интересно подписывайтесь на мой канал в telegram, буду рад вас видеть!

Содержание:

Поток управления относится к способу выполнения инструкций в приложении. Существуют типичные логические потоки, такие как условные и циклические потоки, используемые для определения порядка обработки инструкций. Dart предоставляет ряд методов для управления работой приложения и координатами на основе этого потока принятия решений.

Если вы использовали другие языки, такие как Python, JavaScript и т.д., то вы будете хорошо знакомы с содержанием, рассмотренным в этой главе. Для тех из вас, кто новичок в разработке, эта глава очень важна! Операторы потока управления распространены в большинстве языков, с которыми вы познакомитесь. Частью изучения языка является умение использовать эти типы высказываний.

В этой главе вы узнаете, как использовать поток управления для включения логики в ваше приложение. Вы также увидите варианты использования для каждого оператора. Многие потоки включают оператор условия, который используется для определения того, какие действия выполняются. Обратите особое внимание на эти условия и постарайтесь эффективно использовать поток управления в вашем приложении.

IF | Проверка выполнения условия

Проблема

Вы хотите обеспечить логическую проверку условия перед выполнением инструкции.

Решение

Используйте оператор if, чтобы предоставить управляющий оператор для бинарного выбора. Оператор if предоставляет шаг для подтверждения того, что логический оператор действителен. Если есть несколько вариантов, рассмотрите возможность использования инструкции switch.

В этом примере показано, как использовать условие if. Оператор if используется для проверки значения переменной bool. Если переменной bool присвоено значение true, то отображается первое сообщение. Если переменной bool присвоено значение false, отображается альтернативное сообщение:

void main() { bool isFootball = true; if (isFootball) { print('Go Football!'); } else { print('Go Sports!'); } }

Обсуждение

Работа с оператором if позволяет контролировать логическую последовательность в приложении. Поток управления такого типа важен для создания приложений и обеспечивает простой механизм выбора между вариантами. Условный поток оператора if показан на рисунке 2-1.

Рисунок 2-1. Логика оператор IF
Рисунок 2-1. Логика оператор IF

В примере проверка оператора if является неявной, что означает, что она проверяет, является ли присвоенное значение истинным. Логические операторы, такие как && (И) и || (ИЛИ), также могут использоваться для расширения проверяемых выражений. Используйте оператор AND для проверки истинности обоих выражений перед выполнением кода. Логическое ИЛИ используется для подтверждения истинности одного или нескольких выражений, где каждое выражение вычисляется по очереди. Кроме того, логические операторы могут быть отменены с использованием ! оператор (инвертирования) логического значения.

Типичный вариант использования инструкции if заключается в том, чтобы сделать выбор между двумя или более вариантами. Если у вас есть только два варианта, этот тип потока управления идеален. В дополнение к предыдущему, “collection if” предоставляет дополнительную функциональность для тестирования элемента. Данные, связанные с элементом, могут быть установлены на основе условия объекта коллекции, например, является ли это первым или последним объектом в структуре данных.

WHILE | Повторение до тех пор, пока не выполнено условие

Проблема

Вы хотите, чтобы метод выполнялся в цикле до тех пор, пока в приложении не будет выполнено условие.

Решение

Используйте цикл while, когда вам нужно, чтобы условие ввода было проверено в начале потока управления. Примечание: проверка цикла выполняется в начале условия цикла. Таким образом, цикл while имеет минимум нулевых итераций и максимальную итерацию N. Вот пример потока управления циклом while:

void main() { bool isTrue = true; while (isTrue) { print ('Hello'); isTrue = false; } }

Используйте цикл do while, когда вам нужно, чтобы цикл выполнялся минимум одну итерацию.

Как вы можете видеть на рисунке 2-2, условие цикла проверяется при входе, что означает, что эта конструкция цикла будет проверяться перед каждой итерацией.

Рисунок 2-2. Логика оператора while
Рисунок 2-2. Логика оператора while

Вот пример цикла do while потока управления:

void main() { bool isTrue = true; do { print ('Hello'); isTrue = false; } while (isTrue) ; }

Напротив, обратите внимание, как цикл, показанный на рис. 2-3, отличается от предыдущего примера условия while.

Рисунок 2-3. Логика оператора Do While
Рисунок 2-3. Логика оператора Do While

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

В примере цикла while демонстрационное приложение будет выводить значение только тогда, когда переменной bool присвоено значение true. Пример цикла do while выведет инструкцию print независимо от начального значения переменной isTrue.

Цикл while проверит условие перед выполнением цикла, что означает, что вы можете использовать это для выполнения 0...N итераций. Типичным вариантом использования будет тот, в котором переменная используется для управления количеством выполненных итераций.

В инструкции do while типичным вариантом использования будет тот, в котором выполняется по крайней мере одна итерация цикла. Если ситуация требует одной итерации, то использование этого типа потока управления является хорошим выбором.

FOR | Перебор диапазона элементов

Проблема

Вы хотите, чтобы метод перебирал определенный диапазон элементов.

Решение

Используйте инструкцию for для выполнения определенного количества итераций в пределах определенного диапазона. Конкретный диапазон определяется, как часть инициализации инструкции for. Вот пример инструкции for:

void main() { int maxIterations = 10; for (var i = 0; i < maxIterations; i++) { print ('Iteration: $i'); } }

Кроме того, там, где у вас есть объекты, доступные с помощью цикла (т.е. повторяемые), вы также можете использовать forEach:

void main() { List daysOfWeek = ['Sunday', 'Monday', 'Tuesday']; daysOfWeek.forEach((print)); }

Обсуждение

Оператор for может использоваться для различных вариантов использования, таких как выполнение действия точное количество раз (например, инициализация переменных). На рисунке 2-4 цикл for используется для перебора элементов. Аналогично циклу while, условие проверяется при входе, и если оно выполняется, цикл завершается. Если условие не выполняется, цикл продолжается до тех пор, пока не будет исчерпан диапазон элементов.

Рисунок 2-4. Логика оператора For
Рисунок 2-4. Логика оператора For

Как показано во втором примере, оператор forEach является очень полезным методом для доступа к информации внутри объекта. Там, где у вас есть повторяемый тип (например, объект List), оператор forEach предоставляет возможность прямого доступа к содержимому. Добавление forEach к объекту List позволяет создать ярлык, в котором оператор print может быть напрямую привязан к каждому элементу в списке.

Типичный вариант использования оператора for заключается в выполнении итераций, в которых определен диапазон. Он также может быть использован для эффективной обработки списка или аналогичного типа данных эффективным способом.

SWITCH | Выполнение условных действий на основе значения

Проблема

Вы хотите выполнить несколько логических проверок представленного значения.

Решение

Используйте оператор switch там, где у вас есть несколько логических операторов. Как правило, там, где требуется несколько логических проверок, первым потоком управления, который приходит на ум, может быть оператор if (который мы видели в рецепте 2.1). Однако может оказаться более эффективным использовать оператор switch. Вот пример оператора switch:

void main() { int myValue = 2; switch (myValue) { case 1: print('Monday'); break; case 2: print('Tuesday'); break; default: print('Error: Value not defined?'); break; } }

Обсуждение

Оператор switch (или case) предоставляет улучшенный оператор if для обработки нескольких условий. На рисунке 2-5 оператор case работает так же, как оператор if, только необходимо проверить несколько условий. Для большинства целей оператор case представляет собой более удобочитаемое условие if для ситуаций, когда необходимо проверить два или более условий.

Рисунок 2-5. Логический оператор Switch
Рисунок 2-5. Логический оператор Switch

На рисунке 2-5 показано, как доступно несколько условий. Оператор switch может обеспечить лучшую читаемость по сравнению с несколькими операторами if. В большинстве случаев, когда для проверки требований требуется логическое условие, оператор switch может предложить стилистически более чистый выбор.

В примере кода оператор switch имеет два допустимых варианта, т.е. 1 или 2. Надеюсь, вы можете представить, как расширить этот код, чтобы включить больше вариантов. Оператор switch отобразит оператор по умолчанию, в котором соответствующее значение не было добавлено.

То есть любой другой выбор передается параметру по умолчанию, который действует как раздел очистки. Включение явных операторов полезно для уменьшения ошибок при обработке информации.

Начать дискуссию