Bài 5: Toán tử so sánh logic và các câu lệnh if switch trong C# .NET

Ngày đăng: 12/28/2022 2:10:12 PM

Các toán tử so sánh trong C#

Các toán tử so sánh thực hiện phép toán trên hai số hạng và trả về kết quả kiểu bool với giá trị true hoặc false.

Ví dụ có hai biến int a = 5; và int b = 6; thì:

Toán tử Ý nghĩa Ví dụ
== So sánh bằng
 bool c = (a == b);      // false
> So sánh lớn hơn
 bool c = (a > b);       // false
>= So sánh lớn hơn hoặc bằng
 bool c = (a >= b);      // false
< So sánh nhỏ hơn
 bool c = (a < b);       // true
<= So sánh nhỏ hơn hoặc bằng
 bool c = (a <= b);      // true
!= So sánh khác
 bool c = (a != b);      // true

 

CS

Debug phép toán so sánh

Các toán tử logic

Các toán tử logic thực hiện trên các số hạng kiểu bool và trả về kết quả bool là true hoặc false

Ví dụ nếu bool a = false; và bool a = true; thì

Toán tử Ý nghĩa Ví dụ
&& Phép toán VÀ - trả về true nếu cả hai số hạng đều true, còn lại trả về false
 bool c = (a && b);  // false
|| Phép toán HOẶC - trả về true nếu 1 trong hai số hạng là true, còn lại trả về false
 bool c = (a || b);  // true
! Viết trước số hạng, giá trị trả về true nếu số hạng là false và ngược lại.
 bool c = !a;  // true

Câu lệnh if

Cú pháp lệnh này như sau (dạng đơn giản):

 if (điều_kiện)
     câu_lệnh; //Câu lệnh thi hành nếu điều_kiện là đúng

Hoặc thi hành cả khối lệnh

 if (điều_kiện)
 {
     các_câu_lệnh; //Câu lệnh thi hành nếu điều_kiện là đúng
 }

Dạng đậy đủ có thể định nghĩa lệnh (khối lệnh) thi hành nếu điều kiện logic đúng, và lệnh (khối lệnh) thi hành nếu điều kiện sai

 if (điều_kiện)
 {
     các_câu_lệnh; //Câu lệnh thi hành nếu điều_kiện là đúng
 }
 else
 {
     các_câu_lệnh; //Câu lệnh thi hành nếu điều_kiện là sai
 }

Ví dụ:

 int number = 1990;
 if ((number % 2) == 0)
     Console.WriteLine($"{number} là số chẵn");
 // In ra: 1990 là số chẵn
 int a = 5;
 int b = 10;
 if (a >= b)
 {
     Console.WriteLine("Số a lớn hơn hoặc bằng số b");
 }
 else
 {
     Console.WriteLine("Số a nhỏ hơn số b");
 }
 //In ra: Số a nhỏ hơn số b

Sau else bạn có thể bắt đầu ngay một lệnh if khác để tạo ra cấu trúc if else, kiểm tra nhiều trường hợp

 int a = 10;
 int b = 10;
 if (a > b)
 {
     Console.WriteLine("Số a lớn hơn hoặc bằng số b");
 }
 else if (a < b)
 {
     Console.WriteLine("Số a nhỏ hơn số b");
 }
 else
 {
     Console.WriteLine("Hai số a, b bằng nhau");
 }

Câu lệnh ba thành phần với toán tử ?

Khi viết:

 rs = expr1 ?  expr2 : expr3;

Thì câu lệnh đó tương tương với

 if (expr1)
    rs = expr2;
 else
    rs = expr3;

Có nghĩa nếu biểu thức expr1 là true thì lấy giá trị của expr2 và false thì lấy expr3

 int age = 18;
 var mgs = (age >= 18) ? "Đủ điều kiện" : "Không đủ điều kiện";
 Console.WriteLine(mgs);
 //In ra: Đủ điều kiện

Ví dụ tìm số lớn nhất trong các số a, b, c

 var a = 2;
 var b = 3.5;
 var c = 2;
 var max = a >= b ?  a >= c ? a : c : b >=c ? b : c;
 // Viết tường minh hơn
 // max = (a >= b) ?  (a >= c ? a : c) : (b >=c ? b : c);
 Console.WriteLine(max);

Câu lệnh rẽ nhánh switch

Câu lệnh switch ... case áp dụng cho cấu trúc rẽ nhiều nhánh, nó thay thế cho nhiều cầu lệnh else if

 switch (expr)
 {
     case expr1:
         //Cách lệnh thi  hành nếu expr == expr1
     break;
     case expr2:
         //Cách lệnh thi  hành nếu expr == expr2
     break;
 
         // ...
 
     default:
         //..
     break;
 }

Câu lệnh switch trên sẽ so sánh expr với các biểu thức sau từ khóa case là expr1, expr2 ... nếu bằng biểu thức nào thì bắt đấu thi hành lệnh từ khối case đó cho đến khi gặp break (Nếu không gặp break nó thi hành cho đến cuối)

Nếu có khối default, nó sẽ thi hành nếu expr không rẽ vào nhánh case nào.

 int number = 2;
 switch (number)
 {
     case 1:
         Console.WriteLine("number có giá trị một");
     break;
     case 2:
         Console.WriteLine("number có giá trị hai");
     break;
     default:
         Console.WriteLine("number khác một và hai");
     break;
 
 }
 //In ra : number có giá trị hai

Lệnh trên nếu sử dụng else if thì có dạng

 int number = 2;
 if (number == 1)
 {
     Console.WriteLine("number có giá trị một");
 }
 else if (number == 2)
 {
     Console.WriteLine("number có giá trị hai");
 }
 else
 {
     Console.WriteLine("number khác một và hai");
 }

Sử dụng switch rõ ràng, dễ đọc hơn khi số lượng else if nhiều

Nguồn tin: XuanThuLab