Bài 7.1 Cấu trúc if else trong C#

0
818
Bài số 8 trong 20 bài của khóa học Khóa học C# cơ bản

Ở bài trước chúng ta đã tìm hiểu về nhập xuất trong C#. Bài này, chúng ta sẽ đi tìm hiểu về cấu trúc if else trong C#. Cấu trúc rẽ nhánh if else thường được dùng để kiểm tra một biểu thức hay dữ liệu đầu vào từ đó đưa chương trình sang các hướng cụ thể khác nhau. Chi tiết về cấu trúc rẽ nhánh chúng ta sẽ tìm hiểu ở phần sau.

Cấu trúc rẽ nhánh là gì?

Cấu trúc rẽ nhánh là cấu trúc sẽ kiểm tra tính đúng đắn của một biểu thức logic từ đó quyết định xem có thực hiện một đoạn code nào đó hay không. Thường các cấu trúc rẽ nhánh sẽ hoạt động như sau:

if else trong c

Khi điều kiện đúng thì sẽ thực hiện câu lệnh bên trong nó còn không thì sẽ bỏ qua các câu lệnh bên trong đó.

Cấu trúc if else trong C#

Chúng ta đã hiểu sơ sơ về cấu trúc rẽ nhánh trong một ngôn ngữ lập trình nào đó sau đây chúng ta sẽ tìm hiểu kĩ hơn về nó.

Để có thể sử dụng cấu trúc rẽ nhánh if else trong C# chúng ta sử dụng theo khuôn mẫu sau đây:

Ở khuôn mẫu trên <biểu thức logic> sẽ là biểu thức mang giá trị true hoặc false nếu như biểu thức này đúng chương trình sẽ thực hiện các câu lệnh trong khối lệnh này và bỏ qua khối lệnh else còn ngược lại, nếu biểu thức đó sai thì chương trình sẽ bỏ qua các câu lệnh trong khối lệnh đó và tiếp tục thực hiện các câu lệnh trong khối lệnh else.

Nói như vậy thì có thể hơi khó hình dung, các bạn xét ví dụ sau đây:

Chương trình này cho ra kết quả:

Trong chương trình mình đã khai báo 2 biến a = 10b = 100 và sau đó mình sử dụng cấu trúc rẽ nhánh if else để kiểm tra xem a có nhỏ hơn b hay không. Vì rõ ràng a nhỏ hơn b nên biểu thức a < b sẽ đúng và thực hiện câu lệnh trong khối lệnh if và bỏ qua luôn khối lệnh else bên dưới. Giờ chúng ta thử thay đổi 2 giá trị ab đi xem có gì thay đổi không nhé !

Chương trình này cho ra kết quả là:

Lần này vì a = 50b = 40 rõ ràng là a đã lớn hơn b nên biểu thức a < b sẽ sai và trả về giá trị là false. Vì biểu thức lúc này là false nên chương tình sẽ bỏ qua khối lệnh if và thực hiện luôn khối lệnh else.

Nếu như bạn muốn kiểm tra chi tiết hơn trong trường hợp a == b thì chương trình sau sẽ giải đáp thắc mắc của bạn:

Lúc này chương trình sẽ cho ra kết quả:

Giải thích qua một chút, a = 40b = 40 rõ ràng là a = b, nên biểu thức a < b sẽ sai và trả về giá trị là false. Chương trình lúc này sẽ bỏ qua khối lệnh if và thực hiện sang khối lệnh else. Nhưng lần này trong khối lệnh else tiếp theo lại xuất hiện thêm biểu thức if bên trong vì vậy chương trình sẽ lại kiểm tra biểu thức a == b và biểu thức này đúng nên sẽ trả về giá trị là true nên sẽ thực hiện câu lệnh bên trong và bỏ qua khối lệnh else còn lại.

Toán tử 3 ngôi ?: trong C#

Giả sử giờ chúng ta muốn kiểm tra một điều kiện và trả về cái gì đó hoặc để gán cho cái gì đó thì việc phải thêm 1, 2 câu lệnh if else vào sẽ làm mất thời gian code cũng như là code của bạn trông sẽ dài hơn rất nhiều. Vậy nên C# đã tích hợp một toán tử 3 ngôi để hỗ trợ điều này. Cấu trúc của toán tử 3 ngôi ?: như sau.

Để dễ hiểu hơn ta xét một ví dụ đơn giản:

Chương trình trên sử dụng toán tử 3 ngôi ?: và kết quả cho ra:

Chúng ta thấy rõ ràng biểu thức logic trên 10 < 40 là hiển nhiên đúng nên nó lấy giá trị khi biểu thức đúng là 10 vì biểu thức này đúng nên không trả về giá trị là 40. Chương trình in ra là 10 chứng tỏ rằng 10 đã được gán cho biến a.

Tổng kết

Như vậy là thông qua bài viết này chúng ta đã hiểu được cấu trúc rẽ nhánh if else trong C#. Đây cũng là cấu trúc rẽ nhánh đầu tiên được giới thiệu của C#. Ở bài sau mình sẽ giới thiệu cho các bạn cấu trúc rẽ nhánh thứ 2 là cấu trúc switch case. Các bạn có thể làm bài tập cuối bài để hiểu hơn về cấu trúc này. Cảm ơn bạn đã  theo dõi bài viết này. Hãy tiếp tục đồng hành cùng Lập trình không khó trong các bài viết tiếp theo nhé !

  • DK01 – luyencode.net
  • DK02 – luyencode.net
  • DK03 – luyencode.net
Các bài viết trong khóa họcBài trước: Bài 6. Nhập xuất trong C#Bài sau: Bài 7.2 Cấu trúc switch case trong C#
Là một học sinh cấp 3 có niềm đam mê mãnh liệt với lập trình với châm ngôn "Code ra bugs mới là lập trình viên".
Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments