Cấu trúc IF-ELSE

0
233

Trong cuộc sống chúng ta rất hay gặp phải những tình huống đòi hỏi chúng ta phải đưa ra lựa chọn, hoặc là cái này hoặc là cái kia. Cấu trúc IF-ELSE cũng tương tự như vậy: là tại một thời điểm sẽ có nhiều lựa chọn có thể xảy ra nhưng chỉ chọn một trường hợp duy nhất….

Ở bài viết trước chúng ta đã làm quen với Biến-Hằng-Câu lệnh và biểu thức trong C/C++

nay chúng ta sẽ làm quen với câu lệnh rẽ nhánh IF-ELSE.

Rẽ nhánh: là tại một thời điểm sẽ có nhiều lựa chọn có thể xảy ra nhưng xảy ra một trường hợp duy nhất.

Các câu lệnh rẽ nhánh cho phép chúng ta thay đổi hướng thực hiện của chương trình
Một câu lệnh rẽ nhánh trả về giá trị đúng hoặc sai
Ví dụ: Để xác định một số là số chẵn hay số lẻ chúng ta tiến hành như sau:
  1. Nhập vào một số
  2. Chia số đó cho 2 để xác định số dư
  3. Nếu số dư là 0, số đó là “SỐ CHẴN”
  4. Ngược lại số dư không bằng 0, số đó là “SỐ LẺ”

Câu lệnh if

Điều kiện sử dụng:

Sử dụng khi rẽ nhánh chỉ có một trường hợp duy nhất. Nếu thỏa điều kiện thì thực hiện, còn không thỏa thì không thực hiện (không làm gì hết).
Ví dụ: Sinh viên có điểm trung bình lớn hơn 8.0 được nhận học bổng.
Sinh viên có điểm trung bình lơn hơn 8.0:  được nhận học bổng.
Trường hợp khác (có điểm trung bình không lơn hơn 8.0):  không có yêu cầu gì cả.
Cú pháp:
if (expression)

statement;

image002
Ví dụ:
image004

Câu lệnh if…else…

Điều kiện sử dụng:
Sử dụng khi rẽ nhánh chỉ có 2 trường hợp trái ngược nhau xảy ra. Nếu không thực hiện trường hợp này thì phải thực hiện trường hợp kia và ngược lại.
Ví dụ: Nếu sinh viên có điểm trung bình lớn hơn hoặc bằng 4.0 thì đậu, ngược lại thì rớt. Ta thấy trong ví dụ này, bất kỳ sinh viên nào cũng chỉ có thể rơi vào trường hợp “đậu” hoặc “rớt” mà thôi, không có trường hợp khác.
Sinh viên có điểm trung bình lớn hơn hoặc bằng 5.0:  “đậu”.
Ngược lại:  “rớt”.

Cú pháp:

if (expression)

statement1;

else

statement2;

Chi tiết hơn

image005

Ví dụ:

image007

Ví dụ: Yêu cầu người thực hiện chương trình nhập vào một số thực a. In ra màn hình kết quả nghịch đảo của a khi a ≠0, khi a =0 in ra thông báo “Khong the tim duoc nghich dao cua a”

Giải thích:

  • Nếu chúng ta nhập vào a ≠0 thì câu lệnh printf(“Nghich dao cua %f la %f”,a,1/a) được thực hiện, ngược lại câu lệnh printf(“Khong the tim duoc nghich dao cua a”) được thực hiện.
  • Lệnh getch() luôn luôn được thực hiện.
  • Chạy từng bước dạng Debug, có thể xem các biến a, b và biểu thức a>b

Nếu bạn chưa biết debug thì xem thêm ở đây Hướng dẫn Tạo Project Visual C++ trong Visual Studio 2012

Câu if–else–if

Điều kiện sử dụng:
Sử dụng khi rẽ nhánh có từ 3 trường hợp trở lên.
Ví Dụ: Căn cứ vào điểm trung bình ta xếp loại sinh viên như sau:
Nếu đtb>=8.0 thì xếp loại giỏi
Nếu 8.0>dtb>=6.5 thì xếp loại khá
Nếu 6.5>dtb>=5.0 thì xếp loại trung bình
Còn lại thì xếp loại yếu

Cú pháp

if (expression1)
                             statement1;
else if (expression2)
                             statement2;
else if (expression3)
                             statement3;
                                         …
else statementn;
Chi tiết hơn: 

 image009

Vd: Chương trình hiển thị thông báo dựa vào một giá trị

Một vài chú ý:

  • Biểu thức điều kiện trong cấu trúc if, if…else… phải có giá trị đúng hoặc sai.
  • Biểu thức điều kiện có thể chỉ gồm một biều thức đơn giản hoặc có thể là sự kết hợp của nhiều biều thức điều kiện thông qua các phép toán và (&&), hoặc (||), phủ định (!).

Lệnh if lồng nhau

Lệnh if lồng nhau là một lệnh if được đặt trong một lệnh  if hoặc else khác
Trong C, một lệnh else luôn kết hợp với một lệnh if gần nhất cùng khối lệnh nếu lệnh else đó chưa được kết hợp với một lệnh if nào khác
image011
Lệnh else bên trong được kết hợp với if(exp3)
Theo chuẩn ANSI, một trình biên dịch hỗ trợ ít nhất là 15 mức lồng nhau

Hướng dẫn giải quyết một bài toán
Các bước thực hiện

  • Bước 1: Phân tích bài toán, xác định input, output và các bước xử lý để từ input có thể tạo ra được output.
  • Bước 2: Cài đặt chương trình.
  • Bước 3: Kiểm tra và chạy thử.

Ví dụ: Nhập vào điểm trung bình môn học; Ngôn ngữ lập trình. In ra màn hình cho biết sinh viên đó đậu hay rớt biết rằng nếu điểm trung bình lớn hơn hoặc bằng 4.0 thì đậu ngược lại là rớt.
Bước 1: Phân tích bài toán

Input: Nhập điểm trung bình, 01 biến dtb (điểm trung bình) có kiểu là số thực
Output: Xuất ra kết quả đậu hay rớt dựa vào điểm trung bình đã nhập.
Bài toán có 2 trường hợp là đậu, rớt => sử dụng cấu trúc if…else…
Biều thức điều kiện: dtb>=4.0

Bước 2: Cài đặt chương trình

Tạo project mới (có thể tham khảo ở đây):  File -> new ->Project
Khai báo thư viện và viết hàm main
image013
  • Khai báo và nhập dữ liệu
image015
  • Cài đặt câu lệnh rẽ nhánh
image007

Bước 3: Kiểm tra, sửa lỗi và chạy thử

image020

Xem thêm Cấu trúc switch – case

LEAVE A REPLY