STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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++.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thứ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é.

Cú pháp
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.

if 1 PNG

Ví dụ
#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:

if 2 PNG

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ụ.

Cấu trúc if else C++
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.

h PNG

Ví dụ
#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:

e PNG

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.

Cú pháp
if (condition1) 
{
   // Doan code se duoc thuc thi khi condition1 dung
   if (condition2) 
   {
      // Doan code se duoc thuc thi khi condition2 dung
   }
}
Ví dụ
#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.

Cú pháp
if (condition)
    statement;
else if (condition)
    statement;
.
.
else
    statement;

Lưu đồ hoạt động.

t1 PNG

Ví dụ
#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ùng chuyên mục:

Kiểm tra chuỗi có phải là chuỗi pangram hay không trong C

Kiểm tra chuỗi có phải là chuỗi pangram hay không trong C

Loại bỏ các từ trùng lặp trong một chuỗi trong C

Loại bỏ các từ trùng lặp trong một chuỗi trong C

Chuyển đổi một số thành chuỗi số tiếng Anh trong C

Chuyển đổi một số thành chuỗi số tiếng Anh trong C

Tìm chuỗi con dài nhất không chứa ký tự trùng lặp trong C

Tìm chuỗi con dài nhất không chứa ký tự trùng lặp trong C

Chuyển đổi số nguyên sang dạng chuỗi và ngược lại trong C

Chuyển đổi số nguyên sang dạng chuỗi và ngược lại trong C

Kiểm tra số nguyên tố và số hoàn hảo trong C

Kiểm tra số nguyên tố và số hoàn hảo trong C

Tính lũy thừa của một số nguyên trong C

Tính lũy thừa của một số nguyên trong C

Tính phần dư của phép chia hai số nguyên trong C

Tính phần dư của phép chia hai số nguyên trong C

Tính tổng, hiệu, tích, thương của hai số nguyên trong C

Tính tổng, hiệu, tích, thương của hai số nguyên trong C

Sử dụng con trỏ để tính tổng các phần tử trong mảng trong C

Sử dụng con trỏ để tính tổng các phần tử trong mảng trong C

Sử dụng con trỏ để đảo ngược một chuỗi trong C

Sử dụng con trỏ để đảo ngược một chuỗi trong C

Sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn trong C

Sắp xếp một mảng số nguyên sao cho số lẻ nằm trước số chẵn trong C

Sắp xếp một mảng chuỗi theo thứ tự từ điển trong C

Sắp xếp một mảng chuỗi theo thứ tự từ điển trong C

Sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần trong C

Sắp xếp một mảng số nguyên theo thứ tự tăng dần hoặc giảm dần trong C

Tìm phần tử lớn thứ k trong mảng trong C

Tìm phần tử lớn thứ k trong mảng trong C

Xóa phần tử trùng lặp trong mảng trong C

Xóa phần tử trùng lặp trong mảng trong C

Đảo ngược mảng không sử dụng mảng phụ trong C

Đảo ngược mảng không sử dụng mảng phụ trong C

Tìm số lần xuất hiện của một phần tử trong mảng trong C

Tìm số lần xuất hiện của một phần tử trong mảng trong C

Tìm giá trị lớn nhất và nhỏ nhất trong một mảng trong C

Tìm giá trị lớn nhất và nhỏ nhất trong một mảng trong C

Tách chuỗi thành các từ riêng lẻ và in ra màn hình trong C

Tách chuỗi thành các từ riêng lẻ và in ra màn hình trong C

Top