Rust - Ra quyết định

Cấu trúc ra quyết định yêu cầu người lập trình chỉ định một hoặc nhiều điều kiện để được đánh giá hoặc kiểm tra bởi chương trình, cùng với một câu lệnh hoặc các câu lệnh sẽ được thực thi nếu điều kiện đó được xác định là đúng và tùy chọn, các câu lệnh khác sẽ được thực thi nếu điều kiện được xác định là sai.

Dưới đây là hình thức chung của cấu trúc ra quyết định điển hình được tìm thấy trong hầu hết các ngôn ngữ lập trình -

Sr.No Tuyên bố & Mô tả
1

if statement

Một khi tuyên bố bao gồm một biểu thức Boolean theo sau là một hoặc nhiều câu lệnh.

2

if...else statement

Một khi tuyên bố có thể được theo sau bởi một tùy chọn khác tuyên bố, mà thực hiện khi biểu thức Boolean là sai.

3

else...if and nested ifstatement

Bạn có thể sử dụng một câu lệnh if hoặc else if bên trong một câu lệnh if hoặc else if khác .

4

match statement

Một trận đấu tuyên bố cho phép một biến được thử nghiệm chống lại một danh sách các giá trị.

Nếu tuyên bố

Cấu trúc if… else đánh giá một điều kiện trước khi một khối mã được thực thi.

Cú pháp

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

Nếu biểu thức Boolean đánh giá là true, thì khối mã bên trong câu lệnh if sẽ được thực thi. Nếu biểu thức Boolean được đánh giá là false, thì tập mã đầu tiên sau khi kết thúc câu lệnh if (sau dấu ngoặc nhọn đóng) sẽ được thực thi.

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

Ví dụ trên sẽ in number is positive như điều kiện được chỉ định bởi khối if là true.

nếu khác tuyên bố

An if có thể được theo sau bởi một tùy chọn elsekhối. Khối else sẽ thực thi nếu biểu thức Boolean được kiểm tra bởi câu lệnh if cho kết quả là false.

Cú pháp

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

Sơ đồ

Các ifkhối bảo vệ biểu thức điều kiện. Khối liên kết với câu lệnh if được thực thi nếu biểu thức Boolean đánh giá là true.

Khối if có thể được theo sau bởi một câu lệnh else tùy chọn. Khối lệnh liên kết với khối else được thực thi nếu biểu thức đánh giá là false.

Hình minh họa - Đơn giản nếu… khác

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

Ví dụ trên in ra giá trị trong một biến là chẵn hay lẻ. Khối if kiểm tra khả năng chia hết của giá trị cho 2 để xác định giá trị tương tự. Đây là đầu ra của đoạn mã trên -

Even

Lồng nhau nếu

Các else…ifthang rất hữu ích để kiểm tra nhiều điều kiện. Cú pháp như hình dưới đây -

Cú pháp

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
}

Khi sử dụng câu lệnh if… else… if và else, có một số điểm cần lưu ý.

  • Một if có thể có số 0 hoặc số khác và nó phải đứng sau bất kỳ số nào khác..nếu.
  • Một if có thể có 0 với nhiều else..if và chúng phải đến trước if khác.
  • Khi cái khác..nếu thành công, không cái nào còn lại..nếu hoặc khác sẽ được kiểm tra.

Ví dụ: else… if bậc thang

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) ;
   }
}

Đoạn mã hiển thị giá trị là dương, âm hay không.

Đầu ra

2 is positive

Tuyên bố đối sánh

Câu lệnh so khớp kiểm tra xem giá trị hiện tại có khớp từ danh sách các giá trị hay không, điều này rất giống với câu lệnh switch trong ngôn ngữ C. Trước tiên, hãy lưu ý rằng biểu thức theo sau từ khóa đối sánh không cần phải đặt trong dấu ngoặc đơn.

Cú pháp như hình dưới đây.

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

Trong ví dụ dưới đây, state_code được so khớp với một danh sách các giá trị MH, KL, KA, GA- nếu tìm thấy bất kỳ kết quả phù hợp nào, một giá trị chuỗi được trả về trạng thái biến . Nếu không tìm thấy kết quả phù hợp nào, thì trường hợp mặc định _ khớp và giá trị Unkown được trả về.

fn main(){
   let state_code = "MH";
   let state = match state_code {
      "MH" => {println!("Found match for MH"); "Maharashtra"},
      "KL" => "Kerala",
      "KA" => "Karnadaka",
      "GA" => "Goa",
      _ => "Unknown"
   };
   println!("State name is {}",state);
}

Đầu ra

Found match for MH
State name is Maharashtra