Учебники

Rust — Принятие решений

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

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

Принятие решения

Sr.No Заявление и описание
1

если заявление

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

2

если … еще заявление

За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false.

3

еще … если и вложенный ifstatement

Вы можете использовать один оператор if или else if внутри другого оператора if или else if .

4

заявление о совпадении

Оператор соответствия позволяет проверять переменную на соответствие списку значений.

если заявление

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

если … еще заявление

За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false.

еще … если и вложенный ifstatement

Вы можете использовать один оператор if или else if внутри другого оператора if или else if .

заявление о совпадении

Оператор соответствия позволяет проверять переменную на соответствие списку значений.

Если заявление

Конструкция if… else оценивает условие перед выполнением блока кода.

Синтаксис

if boolean_expression {
   // statement(s) will execute if the boolean expression is true
}

Если логическое выражение оценивается как true, тогда будет выполнен блок кода внутри оператора if. Если логическое выражение имеет значение false, то будет выполнен первый набор кода после конца оператора if (после закрывающей фигурной скобки).

fn main(){
   let num:i32 = 5;
   if num > 0 {
      println!("number is positive") ;
   }
}

В приведенном выше примере будет напечатано число положительно, поскольку условие, указанное в блоке if, имеет значение true.

если еще заявление

За if может следовать необязательный блок else . Блок else будет выполнен, если логическое выражение, проверенное оператором if, оценивается как false.

Синтаксис

if boolean_expression {
   // statement(s) will execute if the boolean expression is true
} else {
   // statement(s) will execute if the boolean expression is false
}

блок-схема

блок-схема

Блок if защищает условное выражение. Блок, связанный с оператором if, выполняется, если логическое выражение имеет значение true.

Блок if может сопровождаться необязательным оператором else. Блок инструкций, связанный с блоком else, выполняется, если выражение оценивается как false.

Иллюстрация — Просто если… еще

fn main() {
   let num = 12;
   if num % 2==0 {
      println!("Even");
   } else {
      println!("Odd");
   }
}

Приведенный выше пример показывает, является ли значение в переменной четным или нечетным. Блок if проверяет делимость значения на 2, чтобы определить то же самое. Вот вывод приведенного выше кода —

Even

Вложенный, если

Еще … если лестница полезна для тестирования нескольких условий. Синтаксис как показано ниже —

Синтаксис

if boolean_expression1 {
   //statements if the expression1 evaluates to true
} else if boolean_expression2 {
   //statements if the expression2 evaluates to true
} else {
   //statements if both expression1 and expression2 result to false
}

При использовании операторов if… else… if и else необходимо учитывать несколько моментов.

  • У if может быть ноль или еще один, и он должен следовать за любым другим .. if.
  • Если может иметь ноль для многих других .. если и они должны предшествовать остальному.
  • Как только else..if будет успешным, ни один из оставшихся else..if или else не будет проверен.

Пример: еще … если лестница

fn main() {
   let num = 2 ;
   if num > 0 {
      println!("{} is positive",num);
   } else if num < 0 {
      println!("{} is negative",num);
   } else {
      println!("{} is neither positive nor negative",num) ;
   }
}

Фрагмент показывает, является ли значение положительным, отрицательным или нулевым.

Выход

2 is positive

Заявление о совпадении

Оператор match проверяет, совпадает ли текущее значение из списка значений, это очень похоже на оператор switch в языке Си. Во-первых, обратите внимание, что выражение после ключевого слова соответствия не обязательно заключать в скобки.

Синтаксис как показано ниже.

let expressionResult = match variable_expression {
   constant_expr1 => {
      //statements;
   },
   constant_expr2 => {
      //statements;
   },
   _ => {
      //default
   }
};

В примере , приведенном ниже, state_code сравнивается со списком значений МН, KL, К., Г. А. — если совпадение найдено, то значение возвращается строка переменной состояния. Если совпадений не найдено, регистр по умолчанию _ совпадает и возвращается значение Unkown .