Home » Blog lập trình » [Lập trình C/C++] Bài 4 – Câu lệnh điều kiện – rẽ nhánh trong ngôn ngữ lập trình C/C++

[Lập trình C/C++] Bài 4 – Câu lệnh điều kiện – rẽ nhánh trong ngôn ngữ lập trình C/C++

Một số lưu ý:

Dấu  //  dùng để comment ghi chú, giải thích

Dấu ;   dùng để kết thúc câu lệnh, luôn luôn có nếu không sẽ bị lỗi.

I. CẤU TRÚC ĐIỀU KIỆN ( if )

1. Cấu trúc điều kiện (if) thiếu

Ví dụ thực tế:

Nếu chiều nay trời mưa, Tâm sẽ không  đi đá bóng.

– Tâm không đi đá bóng   <==>  chiều nay trời mưa. Vậy điều kiện để tâm không đi đá bóng là chiều nay trời mưa.

<== >  if(chiều nay trời mưa)

{

==> Tâm sẽ không đi đá bóng

}

 

CÚ PHÁP

if(< biểu thức logic >)

{

// lệnh đơn hoặc khối lệnh sẽ thực hiện khi biểu thức logic đó là true(đúng)

}

 

– Trong ( ), cho kết quả (sai == 0, đúng ≠ 0)

– Cặp ngoặc { và } chứa câu lệnh đơn hoặc 1 khối lệnh cần thực hiện.

VD_1:

 

==> Thông báo Gia tri cua x lon hon 0sẽ được in ra màn hình, bởi vì x = 5 (x > 0) đúng – thực thi câu lệnh bên trong if

* Nhận xét:

– Câu lệnh điều kiện if (thiếu) là câu lệnh điều kiện mà chỉ có 1 chiều.

<=>  Nghĩa là hành động trong câu lệnh if (thiếu) chỉ được thực thi khi và chỉ khi biểu thức logic là đúng. Còn nếu biểu thức logic là sai, thì sẽ không có hành động nào trong câu lệnh if (thiếu) được thực thi.

– Không có điều kiện phủ định lại điều kiện ban đầu.

2. Cấu trúc điều kiện (if) đủ

– Là câu lệnh điều kiện có cấu trúc if – else.

Ví dụ thực tế:

– Nếu đứt cáp thì chúng ta sẽ không vào mạng được.

 

CÚ PHÁP

 

if(<biểu thức logic>)

{

// lệnh đơn hoặc khối lệnh sẽ được chương trình thực hiện

}

else  // <=>   đây là câu lệnh phủ định lại điều kiện if ở trên

{

// lệnh đơn hoặc khối lệnh sẽ được chương trình thực hiện

}

 

VD_2:

 

– Trong ( ), cho kết quả (sai == 0, đúng ≠ 0)

– Cặp ngoặc { và } chứa câu lệnh đơn hoặc 1 khối lệnh cần thực hiện.

==> Thông báo Gia tri cua x khong phai la 0sẽ được in ra màn hình, bởi vì x = 5 (giá trị x khác 0) – tức câu lệnh trong else sẽ được thực thi.

* Nhận xét:

– Câu lệnh điều kiện if (đủ) là câu lệnh điều kiện 2 chiều.

<=> Nghĩa là cấu trúc của câu lệnh if(đủ) có điều kiện phủ định lại điều kiện ban đầu else.

========================== CẦN NHỚ ==========================

Điều kiện ban đầu Điều kiện phủ định
== !=
!= ==
>=
<=
&& ||
|| &&
>=
<=

 

THỰC HÀNH TRÊN MÁY

Đề bài:

Nhập vào 2 số nguyên a và b từ bàn phím. Viết chương trình tìm số lớn nhất giữa 2 số a và b.

Code demo

 

       3. Cấu trúc if , if – else lồng nhau

THỰC HÀNH TRÊN MÁY

      Bài 1. Giải phương trình bậc 1 có dạng: ax +  b = 0.

      Bài 2. Giải phương trình bậc 2 có dạng: ax^2 + bx + c = 0.

– Đề các bạn có thể hiểu như thế nào là câu lệnh điều kiện if, if – else lồng vào nhau,  thì cách tốt nhất là các bạn hãy tự mình bắt tay vào code để trải nghiệm, úng dụng các lí thuyết đã học vào thực hành các bài tập thực tế trên máy,  để có thể tự mình rút ra kinh nghiệm và hiểu rõ hơn cách ứng dụng lí thuyết vào thực tế là như thế nào.

– Sau đây mình xin demo Bài 1

Nhận xét

– Đây là các khái niệm và cú pháp cơ bản của câu lệnh điều kiện, nó giúp cho bạn có thể hiểu và vận dụng vào các bài toán cơ bản và căng cơ của lập trình.

– Còn các cấu trúc như if – else if, if else lồng vào nhau, phân biệt giữa if – if – ifif – else if – else if… thì hẹn các bạn ở 1 bài viết khác mình sẽ phân tích và đi chuyên sâu hơn để các bạn có thể nắm rõ và phân biệt.

II. CẤU TRÚC RẼ NHÁNH (SWITCH – CASE)

1. Cấu trúc switch – case (thiếu)

– Cấu trúc switch cho phép lựa chọn một nhánh trong nhiều khả năng tuỳ vào điều kiện xảy ra.

CÚ PHÁP

                                                            switch (<Biến/BT>)

                                                            {
                                                                  case <GT1> <L1>; break;
                                                                  case <GT2> <L2>; break;

                                                                   …

                                                            }

 <Biến/BT> là biến/biểu thức cho giá trị rời rạc.
–  <Lệnh> : đơn hoặc khối lệnh {}.

* Sự hoạt động của switch (thiếu)

– Đầu tiên < Biến/BT > được tính, sau đó lần lượt so sánh giá trị của < Biến/BT > với các biểu thức hằng < GT1>, < GT2>,..< GT_n>.

– Nếu giá trị của một biểu thức hằng thứ k trong các biểu thức này trùng với giá trị của < Biến/BT > thì chương trình sẽ thực hiện các lệnh bắt đầu từ Lk và tiếp tục các lệnh phía dưới cho tới khi:
– gặp câu lệnh : break (tất nhiên nếu gặp các câu lệnh return, exit thì cũng kết thúc)
– gặp dấu đóng móc } hết cấu trúc switch

2.  Cấu trúc switch – case (đủ)

CÚ PHÁP

                                                                 switch (<Biến/BT>)

                                                                {
                                                                         case <GT1> <L1>; break;
                                                                         case <GT2> <L2>; break;

                                                                        default: <L>; 

}

* Sự hoạt động của switch (đủ)

– Đầu tiên < Biến/BT > được tính, sau đó lần lượt so sánh giá trị của < Biến/BT > với các biểu thức hằng < GT1>, < GT2>,..< GT_n>.

– Nếu giá trị của một biểu thức hằng thứ k trong các biểu thức này trùng với giá trị của < Biến/BT > thì chương trình sẽ thực hiện các lệnh bắt đầu từ Lk và tiếp tục các lệnh phía dưới cho tới khi:
– gặp câu lệnh : break (tất nhiên nếu gặp các câu lệnh return, exit thì cũng kết thúc)
– gặp dấu đóng móc } hết cấu trúc switch

 

– Nếu < Biến/BT > không trùng với giá trị nào trong các biểu thức hằng thì câu lệnh L (các lệnh sau mệnh đề default nếu có) sẽ được thực hiện, rồi ra khỏi cấu trúc switch.

Lưu ý:

– Một trong những điểm giới hạn của cấu trúc switch là giá trị < Biến/BT > , và giá trị của < GT1>, < GT2>,..< GT_n> đều phải là số nguyên.

– Đây là 1 điểm giới hạn khiến cho cấu trúc switch tuy dễ cài đặt và thể hiện tường minh đoạn code nhưng nó vẫn không được nhiều lập trình viên ưa chuộng.

Nhận xét

– Câu trúc switch cũng giống như cấu trúc if – else if, if else.

– Trong nhiều trường hợp có những biểu thức logic phức tạp thì các lập trình viên vẫn thường dùng cấu trúc if – else if, if else để mà giải quyết các vấn đề gặp phải.

THỰC HÀNH TRÊN MÁY

Bài 1. Viết chương trình thể hiện menu lựa chọn,  cho người dùng biết các thể loại phim hiện đang có trong rạp chiếu phim YYY. Yêu cầu người dùng nhập lựa chọn thể loại phim muốn xem.

Demo code

 

Bài 2. Viết chương trình yêu cầu người dùng nhập vào 1 tháng và năm bất kì, sau đó in ra màn hình xem tháng vừa nhập vào có bao nhiêu ngày trong năm đó ?

 

Vấn đề đặt ra

– Nếu bỏ break sau mỗi case thì chuyện gì sẽ xảy ra ?

 

Lời kết luận từ tác giả:

– Đây là tài liệu dùng để học và tham khảo.

– Trong quá trình biên soạn bộ tài liệu có:

+ Tham khảo 1 số nguồn tài liệu(google search, ebook, sách chuyên ngành…).

+ Kiến thức – kinh nghiệm cá nhân của tôi.

– Có thể còn 1 số lỗi sai sót – sẽ luôn cập nhật phiên bản mới.

– Mong nhận được sự đóng góp và phản hồi tích cực từ các bạn đọc. Chân thành cảm ơn.

Link download file PDF: Here

Share
  • Thanh Phong

    Cảm ơn bài viết của bạn 🙂
    Wensite bạn font chữ đẹp quá !!

Share
Free WordPress Themes - Download High-quality Templates