Danh mục

Giáo trình hướng dẫn xây dựng một trình tự xử lý các toán tử trong phép toán đại số có độ ưu tiên p1

Số trang: 5      Loại file: pdf      Dung lượng: 489.29 KB      Lượt xem: 7      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong câu lệnh if mà chúng ta đã tìm hiểu trong phần trước, thì khi điều kiện là true thì biểu thức bên trong if mới được thực hiện. Đôi khi chúng ta muốn kết hợp nhiều điều kiện với nhau như: bắt buộc cả hai hay nhiều điều kiện phải đúng hoặc chỉ cần một trong các điều kiện đúng là đủ hoặc không có điều kiện nào đúng...C# cung cấp một tập hợp các toán tử logic để phục vụ cho người lập trình...
Nội dung trích xuất từ tài liệu:
Giáo trình hướng dẫn xây dựng một trình tự xử lý các toán tử trong phép toán đại số có độ ưu tiên p1Giáo trình hướng dẫn xây dựng một trình tự xử lý các toán tử trong phép toán đại C# có độ ưu tiên Ngôn Ngữ Lập Trình số Trong câu lệnh if mà chúng ta đã tìm hiểu trong phần trước, thì khi điều kiện là true thì biểu thức bên trong if mới được thực hiện. Đôi khi chúng ta muốn kết hợp nhiều điều kiện với nhau như: bắt buộc cả hai hay nhiều điều kiện phải đúng hoặc chỉ cần một trong các điều kiện đúng là đủ hoặc không có điều kiện nào đúng...C# cung cấp một tập hợp các toán tử logic để phục vụ cho người lập trình. Bảng 3.5 liệt kệ ba phép toán logic, bảng này cũng sử dụng hai biến minh họa là x, và y trong đó x có giá trị là 5 và y có giá trị là 7. Tên toán tử Ký hiệu Biểu thức logic Giá trị Logic Cả hai điều kiện and && (x == 3) && (y == false phải đúng 7) Chỉ cần một điều or || (x == 3) || (y == 7) true kiện đúng Biểu thức trong not ! ! (x == 3 ) true ngoặc phải sai. Bảng 3.5: Các toán tử logic (giả sử x = 5, y = 7). Toán tử and sẽ kiểm tra cả hai điều kiện. Trong bảng 3.5 trên có minh họa biểu thức logic sử dụng toán tử and: (x == 3) && (y == 7) Toàn bộ biểu thức được xác định là sai vì có điều kiện (x == 3) là sai. Với toán tử or, thì một hay cả hai điều kiện đúng thì đúng, biểu thức sẽ có giá trị là sai khi cả hai điều kiện sai. Do vậy ta xem biểu thức minh họa toán tử or: (x == 3) || (y == 7) Biểu thức này được xác định giá trị là đúng do có một điều kiện đúng là (y == 7) là đúng. Đối với toán tử not, biểu thức sẽ có giá trị đúng khi điều kiện trong ngoặc là sai, và ngược lại, do đó biểu thức: !( x == 3) có giá trị là đúng vì điều kiện trong ngoặc tức là (x == 3) là sai. Như chúng ta đã biết đối với phép toán logic and thì chỉ cần một điều kiện trong biểu thức sai là toàn bộ biểu thức là sai, do vậy thật là dư thừa khi kiểm tra các điều kiện còn lại một khi có một điều kiện đã sai. Giả sử ta có đoạn chương trình sau: int x = 8; if ((x == 5) && (y == 10)) Khi đó biểu thức if sẽ đúng khi cả hai biểu thức con là (x == 5) và (y == 10) đúng. Tuy nhiên khi xét biểu thức thứ nhất do giá trị x là 8 nên biểu thức (x == 5) là sai. Khi đó không cần thiết để xác định giá trị của biểu thức còn lại, tức là với bất kỳ giá trị nào của biểu thức (y == 10) thì toàn bộ biểu thức điều kiện if vẫn sai. 73 Nền Tảng Ngôn Ngữ C# Ngôn Ngữ Lập Trình C#Tương tự với biểu thức logic or, khi xác định được một biểu thức con đúng thì không cầnphải xác định các biểu thức con còn lại, vì toán tử logic or chỉ cần một điều kiện đúng là đủ: int x =8; if ( (x == 8) || (y == 10))Khi kiểm tra biểu thức (x == 8) có giá trị là đúng, thì không cần phải xác định giá trị củabiểu thức (y == 10) nữa.Ngôn ngữ lập trình C# sử dụng logic như chúng ta đã thảo luận bên trên để loại bỏ các tínhtoán so sánh dư thừa và cũng không logic nữa!Độ ưu tiên toán tử Trình biên dịch phải xác định thứ tự thực hiện các toán tử trong trường hợp một biểuthức có nhiều phép toán, giả sử, có biểu thức sau: var1 = 5+7*3;Biểu thức trên có ba phép toán để thực hiện bao gồm (=, +,*). Ta thử xét các phép toán theothứ tự từ trái sang phải, đầu tiên là gán giá trị 5 cho biến var1, sau đó cộng 7 vào 5 là 12 cuốicùng là nhân với 3, kết quả trả về là 36, điều này thật sự có vấn đề, không đúng với mục đíchyêu cầu của chúng ta. Do vậy việc xây dựng một trình tự xử lý các toán tử là hết sức cần thiết.Các luật về độ ưu tiên xử lý sẽ bảo trình biên dịch biết được toán tử nào được thực hiện trướctrong biểu thức.Tương tự như trong phép toán đại số thì phép nhân có độ ưu tiên thực hiệntrước phép toán cộng, do vậy 5+7*3 cho kết quả là 26 đúng hơn kết quả 36. Và cả hai phéptoán cộng và phép toán nhân điều có độ ưu tiên cao hơn phép gán. Như vậy trình biên dịch sẽthực hiện các phép toán rồi sau đó thực hiện phép gán ở bước cuối cùng. Kết quả đúng củacâu lệnh trên là biến var1 sẽ nhận giá trị là 26.Trong ngôn ngữ C#, dấu ngoặc được sử dụng để thay đổi thứ tự xử lý, điều này cũng giốngtrong tính toán đại số. Khi đó muốn kết quả 36 c ...

Tài liệu được xem nhiều: