Menu
CoddyTech

Độ ưu tiên của toán tử

Thuộc phần Logic và luồng chương trình trong hành trình C# của Coddy. Bài học 38 trên 66.

Độ ưu tiên của toán tử quyết định thứ tự đánh giá các toán tử trong một biểu thức. Hiểu rõ độ ưu tiên rất quan trọng để viết các biểu thức logic chính xác.

Hãy xem ví dụ này:

int result = 5 + 3 * 2;

Giá trị của result là bao nhiêu? Đó là 11, không phải 16, vì phép nhân có độ ưu tiên cao hơn phép cộng.

Đây là thứ tự ưu tiên đã được đơn giản hóa, từ cao nhất đến thấp nhất:

  1. Ngoặc đơn ()
  2. Phép nhân/Chia * / %
  3. Phép cộng/Trừ + -
  1. Các toán tử so sánh < > <= >=
  2. Các toán tử bằng nhau == !=
  1. AND logic &&
  2. OR logic ||
  3. Toán tử gán = += -= vân vân.

Hãy xem cách áp dụng:

bool result = 5 > 3 && 10 < 20 || 7 == 8;

Đầu tiên, các phép so sánh được đánh giá: 5 > 3 là true, 10 < 20 là true, và 7 == 8 là false.
Sau đó, phép AND logic: true && true là true.
Cuối cùng, phép OR logic: true || false là true.

Vậy kết quả là true.

Dùng dấu ngoặc đơn để giúp code của bạn rõ ràng hơn:

bool result = (5 > 3 && 10 < 20) || (7 == 8);
challenge icon

Thử thách

Dễ

Tạo một phương thức có tên EvaluateExpression, nhận ba số nguyên (a, b, c) và trả về một giá trị boolean.

Phương thức của bạn cần trả về kết quả của biểu thức sau:
a > b || a == c && b < c

Sau đó, tạo một phương thức khác có tên EvaluateWithParentheses, đánh giá biểu thức sau:
(a > b || a == c) && b < c

Chương trình của bạn cần đọc ba số nguyên từ bảng điều khiển và in kết quả của cả hai phép đánh giá trên các dòng riêng biệt.

Tự làm thử

using System;

class Program
{
    public static bool EvaluateExpression(int a, int b, int c)
    {
        // Viết code của bạn ở đây
    }
    
    public static bool EvaluateWithParentheses(int a, int b, int c)
    {
        // Viết code của bạn ở đây
    }
    
    static void Main(string[] args)
    {
        Console.WriteLine("Enter three integers:");
        int a = int.Parse(Console.ReadLine());
        int b = int.Parse(Console.ReadLine());
        int c = int.Parse(Console.ReadLine());
        
        // Gọi các phương thức (methods) của bạn và in ra kết quả
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C# online