Изучение основ Dart. Часть 2. Описание потока управления Dart

Изучение основ Dart. Часть 2. Описание потока управления Dart

15 марта 2024 г.

Изучение оператора потока управления Dart: от if-else к циклам и многому другому

Погрузитесь в мир программирования Dart, фундаментальных структур потока управления Dart 3, включая блоки if-else, блоки if-else-if, операторы переключения и выражения переключения. Узнайте, как эффективно использовать эти конструкции в своих программах Dart для лучшего контроля и удобства чтения.

:::совет Прочтите первую часть этой статьи здесь: Изучение основ дартс. Часть 1< /п>

:::

Заявление о потоке управления Dart

В Dart оператор потока управления можно разделить на три категории.

  1. Заявления о принятии решений
  2. Циклические операторы
  3. Операторы перехода
  4. Инициализация и константы:

    const temperature = 43;
    

    * В этой строке объявляется константа с именем temperature, которой присваивается значение 43. Константы — это переменные, значения которых нельзя изменить после присвоения. Здесь temperature представляет значение температуры, которое необходимо оценить.

    1.1 Если блочная структура:

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

    if (temperature < 10) {
        print("Very Cold");
    }
    

    В этом примере оператор if проверяет, меньше ли значение переменной «температура» 10. Если условие истинно (температура меньше 10), он выводит на консоль «Очень холодно». Если условие ложно, блок кода, связанный с оператором if, просто пропускается, и никаких дальнейших действий не предпринимается.

    1.1 Структура блока If-Else:

    Инструкция if-else в Dart позволяет выполнить блок кода, если условие истинно, и другой блок, если условие ложно. Он обеспечивает базовый механизм ветвления в логике программирования.

    if (temperature < 10){
      print("Very Cold");
    } else {
      print("Not very cold");
    }
    

    В этом разделе используется блок if-else для проверки того, меньше ли температура 10. Если условие истинно, код печатает «Очень холодно»; в противном случае он печатает «Не очень холодно». Эта простая структура if-else обеспечивает простой способ обработки двоичных условий.

    1.3 Блочная структура «Если-Иначе-Если»:

    Оператор if-else-if расширяет оператор if-else, позволяя последовательно проверять несколько условий. Он позволяет оценить сложную логику ветвления, когда существует несколько возможных результатов.

    if (temperature < 10) {
      print("Very Cold");
    } else if (temperature >= 10 && temperature <= 18) {
      print("Cold");
    } else if (temperature >= 10 && temperature <= 24) {
      print("Normal");
    } else if (temperature >= 10 && temperature <= 35) {
      print("Hot");
    } else if (temperature >= 10 && temperature <= 40) {
      print("Very Hot");
    } else {
      print("Really too Hot");
    }
    

    В этом разделе представлена ​​серия блоков if-else-if для оценки температуры в определенных диапазонах и определения соответствующих погодных условий. Каждое условие является взаимоисключающим, поэтому выполняется только одно условие.

    1.4. Оператор Switch:

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

    switch (temperature) {
      case < 10:
        print("Very Cold");
        break;
      case > 10 && <= 18:
        print("Cold");
        break;
      case > 10 && <= 24:
        print("Normal");
        break;
      case > 10 && <= 34:
        print("Hot");
        break;
      case > 10 && <= 40:
        print("Very Cold");
        break;
      default:
        print("Really Too Hot");
        break;
    }
    

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

    1.5. Переключение выражения в Dart 3:

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

    final status = switch(temperature){
      <10 => "very cold",
      >= 10 && <= 18 => "Cold",
      >= 10 && <= 24 => "Normal",
      >= 10 && <= 34 => "Hot",
      >= 10 && <= 40 => "Very Cold",
      _ => "Really Too Hot",
    };
    print(status);
    

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

    2.1 Цикл while:

    Цикл while — это оператор потока управления, который многократно выполняет блок кода, пока указанное условие оказывается истинным. Условие оценивается перед каждой итерацией. Если изначально условие ложно, блок кода внутри цикла никогда не выполняется.

    int index = 1;
    while (index < marks.length) {
        print(marks[index]);
        index++;
    }
    

    Цикл while продолжает выполняться до тех пор, пока условие index < marks.length имеет значение true. Он печатает элемент по текущему индексу списка marks и увеличивает индекс на единицу на каждой итерации.

    2.2 Цикл Do-While:

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

    do {
        print(marks[index]);
        index++;
    } while (index < marks.length);
    

    2.3 Цикл For:

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

    for (int i = 0; i < marks.length; i++) {
        print(marks[i]);
    }
    

    Цикл for используется для перебора элементов списка marks. Он инициализирует переменную управления циклом i значением 0 и продолжает выполняться до тех пор, пока i меньше длины списка marks. На каждой итерации он печатает элемент с индексом i списка и увеличивает i на единицу.

    3. Прервать и продолжить

    • break используется для немедленного выхода из цикла при выполнении определенного условия.
    • continue используется для пропуска оставшегося кода в текущей итерации цикла и перехода к следующей итерации.

    // While Loop with break and continue
    int index = 0;
    while (index < marks.length) {
        if (marks[index] == 87) {
            // Use 'continue' to skip printing if the element is 87
            index++;
            continue;
        }
        if (marks[index] == 105) {
            // Use 'break' to exit the loop if the element is 105
            break;
        }
        print(marks[index]);
        index++;
    }
    
    // Do-While Loop with break and continue
    index = 0;
    do {
        if (marks[index] == 87) {
            // Use 'continue' to skip printing if the element is 87
            index++;
            continue;
        }
        if (marks[index] == 105) {
            // Use 'break' to exit the loop if the element is 105
            break;
        }
        print(marks[index]);
        index++;
    } while (index < marks.length);
    
    // For Loop with break and continue
    print("Printing marks list using for loop");
    for (int i = 0; i < marks.length; i++) {
        if (marks[i] == 87) {
            // Use 'continue' to skip printing if the element is 87
            continue;
        }
        if (marks[i] == 105) {
            // Use 'break' to exit the loop if the element is 105
            break;
        }
        print(marks[i]);
    }
    

    * Цикл while:

    A while цикл инициализируется условием. Он перебирает элементы списка marks и печатает каждый элемент до тех пор, пока условие цикла не перестанет удовлетворяться. Он использует операторы break и continue для управления ходом цикла на основе определенных условий.

    * Цикл «Do-While»:

    Подобно циклу while, цикл do- while выполняет свой блок кода хотя бы один раз перед оценкой условия цикла. Он перебирает элементы списка marks, используя операторы break и continue для управления потоком цикла на основе определенных условий.

    * Цикл for:

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

    Заключение

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

    :::информация Также опубликовано здесь.

    :::


    Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE