Giáo trình phân tích ứng dụng nguyên lý trình tự xử lý các toán tử trong một biểu thức logic p1 doc - Pdf 20

Ngôn Ngữ Lập Trình C#
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
and && (x == 3) && (y ==
7)
false Cả hai điều kiện
phải đúng
or || (x == 3) || (y == 7) true Chỉ cần một điều
kiện đúng
not ! ! (x == 3 ) true Biểu thức trong
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

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ước
trong 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ện
trướ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ép
toá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ủa
câ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ống
trong tính toán đại số. Khi đó muốn kết quả 36 cho biến var1 có thể viết:
var1 = (5+7) * 3;
Biểu thức trong ngoặc sẽ được xử lý trước và sau khi có kết quả là 12 thì phép nhân được
thực hiện.
Bảng 3.6: Liệt kê thứ tự độ ưu tiên các phép toán trong C#.
STT Loại toán tử Toán tử Thứ tự
1 Phép toán cơ bản (x) x.y f(x) a[x] x++ x—new typeof
sizeof checked unchecked
Trái
2 + - ! ~ ++x –x (T)x Trái
3 Phép nhân * / % Trái
4 Phép cộng + - Trái
5 Dịch bit << >> Trái
6 Quan hệ < > <= >= is Trái
Nền Tảng Ngôn Ngữ C#
74
.
.
Ngôn Ngữ Lập Trình C#
7 So sánh bằng == != Phải
8 Phép toán logic
AND
& Trái

class Tester
{
public static int Main()
{
int value1;
Nền Tảng Ngôn Ngữ C#
75
.
.
Ngôn Ngữ Lập Trình C#
int value2;
int maxValue;
value1 = 10;
value2 = 20;
maxValue = value1 > value2 ? value1 : value2;
Console.WriteLine(“Gia tri thu nhat {0}, gia tri thu hai {1},
gia tri lon nhat {2}”, value1, value2, maxValue);
return 0;
}
}

 Kết quả:
Gia tri thu nhat 10, gia tri thu hai 20, gia tri lon nhat 20

Trong ví dụ minh họa trên toán tử ba ngôi được sử dụng để kiểm tra xem giá trị của value1
có lớn hơn giá trị của value2, nếu đúng thì trả về giá trị của value1, tức là gán giá trị value1
cho biến maxValue, còn ngược lại thì gán giá trị value2 cho biến maxValue.
Namespace
Chương 2 đã thảo luận việc sử dụng đặc tính namespace trong ngôn ngữ C#, nhằm
tránh sự xung đột giữa việc sử dụng các thư viện khác nhau từ các nhà cung cấp. Ngoài ra,

{
Console.WriteLine( “i: {0}”, i);
}
return 0;
}
}
}

Ví dụ trên tạo ra một namespace có tên là MyLib, bên trong namespace này chứa một lớp có
tên là Tester. C# cho phép trong một namespace có thể tạo một namespace khác lồng bên
trong và không giới hạn mức độ phân cấp này, việc phân cấp này được minh họa trong ví dụ
3.21.
 Ví dụ 3.21: Tạo các namespace lồng nhau.

namespace MyLib
{
namespace Demo
{
using System;
public class Tester
{
public static int Main()
{
for (int i =0; i < 10; i++)
{
Console.WriteLine( “i: {0}”, i);
}
return 0;
}
}


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status