Cấu trúc lệnh if else trong C++ (có bài tập thực hành)
Trong bài này chúng ta sẽ học cách sử dụng lệnh if else trong C++, đây là một lệnh điều khiển rẻ nhánh chương trình rất thông dụng trong lập trình C++.
Trong ngôn ngữ C++ cũng như các ngôn ngữ lập trình khác như JAVA, C#, Ruby, PHP, Javascript, đó là chương trình sẽ được biên dịch và thực thi các câu lệnh theo thứ tự từ trên xuống dưới. Vậy trong một số trường hợp chúng ta muốn đoạn code của mình chỉ được thực thi khi thõa mãn một số điều kiện nào đó thì phải làm như thế nào? Trong C++ có hỗ trợ cho chúng ta thực hiện điều trên bằng cấu trúc điều khiển như if else
, switch case
.
Trong bài học hôm nay chúng ta chỉ tìm hiều cấu trúc điều khiển if else
trong C++, còn cấu trúc điều khiển switch case
chúng ta sẽ tìm hiểu trong bài kế tiếp.
Vậy cấu trúc điều khiển if else
trong C++ là gì? Có mấy loại cấu trúc điều khiển if else
thì chúng ta sẽ cùng tìm hiểu nhé.
Bài viết này được đăng tại [free tuts .net]
1. Câu lệnh if else trong C++
Câu lệnh if else
trong C++ được dùng để điều khiển đoạn code được thực thi khi thõa mãn được điều kiện. Trong C++ có các loại cấu trúc điều khiển if else
như sau:
- if statement (Câu lệnh if)
- if else statement (Câu lệnh if else)
- nested if statement (Câu lệnh if lồng nhau)
- if else if ladder (Câu lệnh else if)
Trước khi tìm hiểu sâu hơn thì mình muốn nói một chút về mệnh đề.
Thực tế thì lệnh if else rất giống với mệnh đề, nó gồm hai thành phần, thứ nhất là điều kiện của mệnh đề và thứ hai là nội dung thực hiện của mệnh đề.
Ví dụ mình có mệnh đề sau: "Nếu tôi thi được 10 điểm thì được bố mẹ cho đi Đà Lạt chơi".
- Điều kiện là phải thi 10 điểm
- Nội dung thực hiện là đi Đà Lạt chơi
Trong lập trình cũng vậy, chúng ta có thể viết một ứng dụng như vậy bằng cách sử dụng lệnh if else.
2. Cấu trúc lệnh if trong C++
Câu lệnh if
là cấu trúc điều khiển đơn giản nhất, nó quyết định đoạn code được thi hay không. Nếu điều kiện đúng thì đoạn code bên trong lệnh if được thực thi, ngược lại thì đoạn code đó sẽ không được thực thi.
Trước hết chúng ta hãy xem cú pháp của nó đã nhé.
if(condition) { // Doan code se duoc thuc thi neu condition đúng }
Lưu ý: Nếu chúng ta không cung cấp dấu "{" sau câu lệnh if thì mặc định nó chỉ thực thi một dòng lệnh duy nhất theo sau if.
Nếu condition có giá trị TRUE
thì đoạn code statement sẽ thực thi, ngược lại nếu condition có giá trị FALSE
nó sẽ bỏ qua. Hãy xem lưu đồ hoạt động của lệnh if dưới đây.
#include<iostream> using namespace std; int main() { int i = 5; if (i > 5) { cout << i << " lon hon 5" << "\n"; } if (i = 5) { cout << i << " bang 5" << "\n"; } if (i < 5) { cout << i << " nho hon 5" << "\n"; } cout << "Cau lenh o ngoai if"; }
Và kết quả sau khi thực thi đoạn code trên:
Như các bạn thấy, vì biến i
có giá trị là 5 nên lệnh if
thứ hai sẽ được thực hiện, nên màn hình sẽ in ra kết quả là "5 bằng 5". Tiếp theo nó sẽ chạy các đoạn code bên ngoài lệnh if, tức là nó sẽ in ra dòng "Cau lenh o ngoai if".
3. Cấu trúc lệnh if else trong C++
Câu lệnh if else
sẽ thực thi đoạn code sau if
nếu điều kiện đúng, ngược lại sẽ thực thi đoạn code sau else
. Nếu xét theo lời văn chúng ta sử dụng trong cuộc sống hằng ngày thì chúng ta có ví dụ sau: Nếu bạn An đi học thì không bị phạt, ngược lại bạn An sẽ bị phạt.
Tương tự, bạn cần phải xem cú pháp và lưu đồ hoạt động của nó trước khi làm ví dụ.
if (condition) { // Doan code se duoc thuc thi neu condition dung } else { // Doan code se duoc thi thi neu condition sai }
Lưu đồ hoạt động.
#include<iostream> using namespace std; int main() { int i = 5; if (i > 5) { cout << i << " lon hon 5" << "\n"; } else { cout << i << " nho hon hoac bang 5" << "\n"; } cout << "Cau lenh o ngoai if"; return 0; }
Và kết quả sau khi thực thi đoạn code trên:
Trong ví dụ này thì rõ ràng biến i = 5
nên điều kiện (i > 5) = FALSE
, chính vì vậy nội dung bên trong lệnh else sẽ được thực hiện, sau đó chạy tiếp các dòng lệnh bên ngoài nên kết quả chúng ta thu được như hình trên.
4. Lệnh if else lồng nhau trong C++
Câu lệnh if
ở bên trong một câu lệnh if
khác, chúng ta gọi đó là câu lệnh if else lồng nhau. Lệnh if else lồng nhau được sư dụng khá nhiều trong thực tế, nó giúp chúng ta rẻ nhánh những chương trình phức tạp.
if (condition1) { // Doan code se duoc thuc thi khi condition1 dung if (condition2) { // Doan code se duoc thuc thi khi condition2 dung } }
#include<iostream> using namespace std; int main() { int i = 15; if (i > 5) { cout << i << " lon hon 5" << "\n"; if (i > 15) { cout << i << " lon hon 15" << "\n"; } else { cout << i << " nho hon hoac bang 15" << "\n"; } } else { cout << i << " nho hon hoac bang 5" << "\n"; } cout << "Cau lenh o ngoai if"; return 0; }
Các bạn cứ chạy từ trên xuống và từ trái qua phải. Vì biến i = 15
nên nội dung bên trọng lệnh if đầu tiên sẽ được chạy. Lúc này bên trong lại có thêm lệnh if else khác nên quy trình hoạt động cứ áp dụng nguyên tắc mà chúng ta đã học ở trên, và kết quả sẽ thu về là "15 nhỏ hơn hoặc bằng 15".
5. Tìm hiểu lệnh if else if ladder
Câu lệnh if else if
cho phép so sánh với nhiều điều kiện, chương trình sẽ chạy từ trên xuống dưới, nếu gặp điều kiện nào đúng thì sẽ thực thi đoạn code bên trong điều kiện đó. Ví vậy đối với cấu trúc điều khiển if else if
chúng ta có thể thực thi nhiều đoạn code khác nhau.
if (condition) statement; else if (condition) statement; . . else statement;
Lưu đồ hoạt động.
#include<iostream> using namespace std; int main() { int i = 15; if (i == 5) { cout << i << " bang 5" << "\n"; } else if (i == 10) { cout << i << " bang 10" << "\n"; } else if (i == 15) { cout << i << " bang 15" << "\n"; } else if (i == 20) { cout << i << " bang 20" << "\n"; } else if (i == 25) { cout << i << " bang 25" << "\n"; } else { cout << i << " gia tri khac" << "\n"; } cout << "Cau lenh o ngoai if"; return 0; }
Cách dùng này có thể thay thế cho lệnh if else lồng nhau trong một số trường hợp, chính vì vậy trong thực tế cách này được sử dụng nhiều nhất.
Mình sẽ không giải thích kết quả nữa, bạn hãy tự chạy và tự tìm hiểu nhé.
6. Câu lệnh if rút gon C++
Trong C++ có một cách để viết rút gọn lệnh if đó là sử dụng toán tử ba ngôi. Đây là toán tử khá đơn giản, chỉ sử dụng trong trường hợp bạn muốn lấy một giá trị nào đó dựa vào một điều kiện đơn giản.
Cú pháp của nó như sau:
condition ? true_value : false_value;
Trong đó:
- Condition là điều kiện kiểm tra
- true_valua là giá trị sẽ được lấy nếu condition = true
- false_value là giá trị sẽ được lấy nếu condition = false
Ví dụ: In ra "số 1" hoặc "khác 1" dựa vào giá trị mà người dùng nhập vào.
#include <iostream> using namespace std; int main() { int number; string message; cout << "Nhap so vao: "; cin >> number; message = (number == 1) ? "so 1" : "khac 1"; cout << message; return 1; }
7. Kết luận
Như vậy chúng ta đã tìm hiểu xong 4 loại cấu trúc điều khiển if
trong C++ đó là câu lệnh if
, câu lệnh if-else
, câu lệnh if
lồng nhau, câu lệnh if-else-if
Trong bài này chúng ta chỉ cần nhớ một số điểm cần lưu ý đó là câu lệnh if
chỉ có một điều kiện, nếu điều kiện đúng thì thực thi đoạn code, ngược lại đoạn code sẽ không được thực thi.
Câu lệnh if-else
nếu điều kiện đúng sẽ thực thi đoạn code bên trong if
, ngược lại sẽ thực thi đoạn code bên trong else
, câu lệnh if-else-if
cho phép so sánh nhiều điều kiện, đi từ trên xuống dưới, nếu điều kiện nào đúng thì thực thi đoạn code bên trong điều kiện đó.
Tùy theo yêu cầu bài toán của mình mà áp dụng cấu trúc điều khiển if
cho phù hợp. Trong bài học tiếp theo chúng ta sẽ cùng tìm hiểu một cú pháp điều khiển nữa trong C++ đó là switch-case
.
8. Bài tập if else C++
- C++ - Câu hỏi trắc nghiệm lệnh if else 1
- C++ - Câu hỏi trắc nghiệm lệnh if else 2
- C++ - Giải phương trình bậc một ax + b = 0
- C++ - Giải phương trình bậc hai ax2 + bx + c = 0
- C++ - Tìm số lớn nhất trong 3 số được nhập từ bàn phím.
- C++ - Đánh giá hạng học sinh dựa vào điểm số
- C++ - In ra màn hình thế kỷ dựa vào năm được nhập từ bàn phím
- C++ - Kiểm tra tam giác có hợp lệ không dựa vào 3 góc được nhập từ bàn phím
- C++ - Kiểm tra một năm bất kỳ được nhập từ bàn phím có phải năm nhuận không
- C++ - Kiểm tra một ký tự có phải là Alphabet hay không