If,While, For, Switch | Управление потоком DART
Привет, появилось желание делиться собранной информацией, которую сам только изучил, тем самым делаю структурирование знаний и делюсь ими, может кто-то на том же пути, где и я, вместе легче!
Если вы на пути изучения Flutter или вам просто интересно подписывайтесь на мой канал в telegram, буду рад вас видеть!
Предыдущая статья: Print, Const, Final и Null | Изучение переменных DART
Содержание:
Поток управления относится к способу выполнения инструкций в приложении. Существуют типичные логические потоки, такие как условные и циклические потоки, используемые для определения порядка обработки инструкций. Dart предоставляет ряд методов для управления работой приложения и координатами на основе этого потока принятия решений.
Если вы использовали другие языки, такие как Python, JavaScript и т.д., то вы будете хорошо знакомы с содержанием, рассмотренным в этой главе. Для тех из вас, кто новичок в разработке, эта глава очень важна! Операторы потока управления распространены в большинстве языков, с которыми вы познакомитесь. Частью изучения языка является умение использовать эти типы высказываний.
В этой главе вы узнаете, как использовать поток управления для включения логики в ваше приложение. Вы также увидите варианты использования для каждого оператора. Многие потоки включают оператор условия, который используется для определения того, какие действия выполняются. Обратите особое внимание на эти условия и постарайтесь эффективно использовать поток управления в вашем приложении.
IF | Проверка выполнения условия
Проблема
Вы хотите обеспечить логическую проверку условия перед выполнением инструкции.
Решение
Используйте оператор if, чтобы предоставить управляющий оператор для бинарного выбора. Оператор if предоставляет шаг для подтверждения того, что логический оператор действителен. Если есть несколько вариантов, рассмотрите возможность использования инструкции switch.
В этом примере показано, как использовать условие if. Оператор if используется для проверки значения переменной bool. Если переменной bool присвоено значение true, то отображается первое сообщение. Если переменной bool присвоено значение false, отображается альтернативное сообщение:
Обсуждение
Работа с оператором if позволяет контролировать логическую последовательность в приложении. Поток управления такого типа важен для создания приложений и обеспечивает простой механизм выбора между вариантами. Условный поток оператора if показан на рисунке 2-1.
В примере проверка оператора if является неявной, что означает, что она проверяет, является ли присвоенное значение истинным. Логические операторы, такие как && (И) и || (ИЛИ), также могут использоваться для расширения проверяемых выражений. Используйте оператор AND для проверки истинности обоих выражений перед выполнением кода. Логическое ИЛИ используется для подтверждения истинности одного или нескольких выражений, где каждое выражение вычисляется по очереди. Кроме того, логические операторы могут быть отменены с использованием ! оператор (инвертирования) логического значения.
Типичный вариант использования инструкции if заключается в том, чтобы сделать выбор между двумя или более вариантами. Если у вас есть только два варианта, этот тип потока управления идеален. В дополнение к предыдущему, “collection if” предоставляет дополнительную функциональность для тестирования элемента. Данные, связанные с элементом, могут быть установлены на основе условия объекта коллекции, например, является ли это первым или последним объектом в структуре данных.
WHILE | Повторение до тех пор, пока не выполнено условие
Проблема
Вы хотите, чтобы метод выполнялся в цикле до тех пор, пока в приложении не будет выполнено условие.
Решение
Используйте цикл while, когда вам нужно, чтобы условие ввода было проверено в начале потока управления. Примечание: проверка цикла выполняется в начале условия цикла. Таким образом, цикл while имеет минимум нулевых итераций и максимальную итерацию N. Вот пример потока управления циклом while:
Используйте цикл do while, когда вам нужно, чтобы цикл выполнялся минимум одну итерацию.
Как вы можете видеть на рисунке 2-2, условие цикла проверяется при входе, что означает, что эта конструкция цикла будет проверяться перед каждой итерацией.
Вот пример цикла do while потока управления:
Напротив, обратите внимание, как цикл, показанный на рис. 2-3, отличается от предыдущего примера условия while.
При такой структуре управления условие проверяется в конце инструкций, что означает, что цикл будет выполнен по крайней мере один раз. Обсуждение Ключевым нюансом, который следует учитывать в этих примерах, является характер выполнения и то, что это означает для обработки потока управления.
В примере цикла while демонстрационное приложение будет выводить значение только тогда, когда переменной bool присвоено значение true. Пример цикла do while выведет инструкцию print независимо от начального значения переменной isTrue.
Цикл while проверит условие перед выполнением цикла, что означает, что вы можете использовать это для выполнения 0...N итераций. Типичным вариантом использования будет тот, в котором переменная используется для управления количеством выполненных итераций.
В инструкции do while типичным вариантом использования будет тот, в котором выполняется по крайней мере одна итерация цикла. Если ситуация требует одной итерации, то использование этого типа потока управления является хорошим выбором.
FOR | Перебор диапазона элементов
Проблема
Вы хотите, чтобы метод перебирал определенный диапазон элементов.
Решение
Используйте инструкцию for для выполнения определенного количества итераций в пределах определенного диапазона. Конкретный диапазон определяется, как часть инициализации инструкции for. Вот пример инструкции for:
Кроме того, там, где у вас есть объекты, доступные с помощью цикла (т.е. повторяемые), вы также можете использовать forEach:
Обсуждение
Оператор for может использоваться для различных вариантов использования, таких как выполнение действия точное количество раз (например, инициализация переменных). На рисунке 2-4 цикл for используется для перебора элементов. Аналогично циклу while, условие проверяется при входе, и если оно выполняется, цикл завершается. Если условие не выполняется, цикл продолжается до тех пор, пока не будет исчерпан диапазон элементов.
Как показано во втором примере, оператор forEach является очень полезным методом для доступа к информации внутри объекта. Там, где у вас есть повторяемый тип (например, объект List), оператор forEach предоставляет возможность прямого доступа к содержимому. Добавление forEach к объекту List позволяет создать ярлык, в котором оператор print может быть напрямую привязан к каждому элементу в списке.
Типичный вариант использования оператора for заключается в выполнении итераций, в которых определен диапазон. Он также может быть использован для эффективной обработки списка или аналогичного типа данных эффективным способом.
SWITCH | Выполнение условных действий на основе значения
Проблема
Вы хотите выполнить несколько логических проверок представленного значения.
Решение
Используйте оператор switch там, где у вас есть несколько логических операторов. Как правило, там, где требуется несколько логических проверок, первым потоком управления, который приходит на ум, может быть оператор if (который мы видели в рецепте 2.1). Однако может оказаться более эффективным использовать оператор switch. Вот пример оператора switch:
Обсуждение
Оператор switch (или case) предоставляет улучшенный оператор if для обработки нескольких условий. На рисунке 2-5 оператор case работает так же, как оператор if, только необходимо проверить несколько условий. Для большинства целей оператор case представляет собой более удобочитаемое условие if для ситуаций, когда необходимо проверить два или более условий.
На рисунке 2-5 показано, как доступно несколько условий. Оператор switch может обеспечить лучшую читаемость по сравнению с несколькими операторами if. В большинстве случаев, когда для проверки требований требуется логическое условие, оператор switch может предложить стилистически более чистый выбор.
В примере кода оператор switch имеет два допустимых варианта, т.е. 1 или 2. Надеюсь, вы можете представить, как расширить этот код, чтобы включить больше вариантов. Оператор switch отобразит оператор по умолчанию, в котором соответствующее значение не было добавлено.
То есть любой другой выбор передается параметру по умолчанию, который действует как раздел очистки. Включение явных операторов полезно для уменьшения ошибок при обработке информации.