Điều khiển luồng trong C++

Các cấu trúc điều khiển luồng yêu cầu lập trình viên xác định một hoặc nhiều điều kiện để được đánh giá và kiểm tra bởi chương trình, cùng với các lệnh được thực hiện nếu điều kiện được xác định là đúng, hoặc các lệnh khác được thực hiện nếu điều kiện xác định là sai.

Dưới đây là mẫu chung của một cấu trúc điều khiển luồng hay gặp trong ngôn ngữ lập trình.

Sơ đồ điều khiển luồng trong C++

Dưới đây liệt kê các lệnh điều khiển luồng được cung cấp bởi C++. Bạn click vào link để thấy chi tiết.

LệnhMiêu tả
Lệnh if trong C++Một lệnh if bao gồm một biểu thức logic theo sau bởi một hoặc nhiều lệnh khác.
Lệnh if...else trong C++Một lệnh if có thể theo sau bởi một lệnh else (tùy ý: có hoặc không), mà có thể được thực hiện khi biểu thức logic có giá trị false.
Lệnh switch trong C++Một lệnh switch cho phép kiểm tra điều kiện của một biến trước khi thực thi các lệnh.
Lồng các lệnh if trong C++Bạn có thể sử dụng lệnh if hoặc else if bên trong lệnh if hoặc else if khác.
Lồng các lệnh switch trong C++Bạn có thể sử dụng một lệnh switch bên trong một lệnh switch khác.

Lệnh if trong C++

Một lệnh if trong Ngôn ngữ C++ chứa một biểu thức boolean được theo sau bởi một hoặc nhiều lệnh.

Cú pháp

Sau đây là cú pháp của một lệnh if trong C++:

if(bieu_thuc_boolean) 
{ 
    // cac lenh se duoc thuc thi neu bieu thuc boolean la true 
}

Nếu biểu thức boolean được ước lượng là true, thì sau đó khối code bên trong lệnh if sẽ được thực thi. Nếu biểu thức boolean được ước lượng là false, thì khi đó, lệnh ngay sau lệnh if sẽ được thực thi.

Sơ đồ

Sơ đồ lệnh if trong C++

Ví dụ

#include <iostream> 
using namespace std; 
int main () 
{ 
    //Khai báo biến cục bộ: 
    int a = 10; 
    //Kiểm tra điều kiện của biểu thức Boolean 
    if( a < 20 ) 
    { 
        //Nếu điều kiện True thì in dòng sau 
        cout << "a nhỏ hơn 20." << endl; 
        
    } 
    cout << "Giá trị của a là: " << a << endl; 
    return 0; 
    
}

Chạy chương trình C++ trên sẽ cho kết quả như sau:

a nhỏ hơn 20.                                                                                                       
Giá trị của a là: 10 

Lệnh if…else trong C++

Lệnh if trong C++ có thể được theo sau bởi một lệnh else tùy ý, mà thực hiện khi biểu thức boolean là false.

Cú pháp

Sau đây là cú pháp của một lệnh if…else trong C++:

if(bieu_thuc_boolean) 
{ 
    // cac lenh se duoc thuc thi neu bieu thuc boolean la true 
    } 
else 
{ 
    // cac lenh se duoc thuc thi neu bieu thuc boolean la false 
    }

Nếu biểu thức boolean được ước lượng là true, thì khi đó khối if sẽ được thực thi, nếu không thì khối else sẽ được thực thi.

Sơ đồ

Sơ đồ lệnh if…else trong C++

Ví dụ

#include <iostream> 
using namespace std; 
int main () 
{ 
    //Khai báo biến cục bộ: 
    int a = 101; 
    //Kiểm tra điều kiện của biểu thức Boolean 
    if(a < 20) { 
        // Nếu điều kiện True thì in dòng này 
        cout << "a nhỏ hơn 20." << endl; 
        
    } 
    else 
    { 
        // Nếu điều kiện False thì in dòng này 
        cout << "a không nhỏ hơn 20." << endl; 
        
    } 
    cout << "Giá trị của a là: " << a << endl; 
    return 0; 
    
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

a không nhỏ hơn 20.                                                                                                 
Giá trị của a là: 101 

Lệnh if…else if…else trong C++

Một lệnh if có thể được theo sau bởi một lệnh else if…else tùy ý, mà rất có ích để kiểm tra các điều kiện đa dạng.

Khi sử dụng lệnh if, else if, else, có một số điểm chính cần ghi nhớ:

Một lệnh if có 0 hoặc một lệnh else và chúng phải theo sau bởi bất kỳ lệnh else if nào.

Một lệnh if có 0 tới nhiều lệnh else if và chúng phải ở trước lệnh else.

Một khi lệnh else if thực hiện, nó sẽ không kiểm tra lại bất kỳ lệnh else if hoặc lệnh else còn lại khác.

Cú pháp

Cú pháp của một lệnh if…else if…else trong Ngôn ngữ C++ như sau:

if(bieu_thuc_boolean 1) 
{ 
    // thuc thi khi bieu thuc boolean 1 la true 
} 
else if( bieu_thuc_boolean 2) 
{ 
    // thuc thi khi bieu thuc boolean 2 la true 
} 
else if( bieu_thuc_boolean 3) 
{ 
    // thuc thi khi bieu thuc boolean 3 la true 
} 
else 
{ 
    // thuc thi khi tat ca cac dieu kien tren khong la true. 
}

Ví dụ:

#include <iostream> 
using namespace std; 
int main () 
{ 
    //Khai báo biến cục bộ: 
    int a = 101; 
    //Kiểm tra điều kiện của biểu thức Boolean 
    if(a == 11) 
    { 
        //Nếu điều kiện true thì in dòng này 
        cout << "Giá trị của a là 11" << endl;         
    } 
    else if(a == 28) 
    { 
        //Nếu điều kiện else if là True thì in dòng này 
        cout << "Giá trị của a là 28" << endl;        
    } 
    else if(a == 36) 
    { 
        //Nếu điều kiện else if là True thì in dòng này 
        cout << "Giá trị của a là 36" << endl;        
    } 
    else 
    { 
        //Nếu các điều kiện trên không True thì in dòng sau 
        cout << "Giá trị của a không phù hợp với các điều kiện trên" << endl; } 
        cout << "Giá trị chính xác của a là: " << a << endl; 
        return 0;    
}

Chạy chương trình C++ trên sẽ cho kết quả như sau:

Giá trị của a không phù hợp với các điều kiện trên                                                                  
Giá trị chính xác của a là: 101  

Lệnh switch case trong C/C++

[switch/case trong C/C++]Một lệnh switch trong C/C++ cho một biến được kiểm tra một cách bình đẳng trong danh sách các giá trị. Mỗi giá trị được gọi là một case - trường hợp và biến được chuyển tới được kiểm tra cho mỗi trường hợp switch.

Cú pháp

Cú pháp của lệnh switch trong Ngôn ngữ C/C++ như sau:

switch(bieu_thuc)
{ 
    case bieu_thuc_hang: 
        statement(s); 
        break;      //Tùy chọn 
    case bieu_thuc_hang: 
        statement(s); 
        break;     //Tùy chọn  
    //Số lượng case statement không bị giới hạn. 
    default: //Tùy chọn  
        statement(s);     
}

Các quy tắc sau được áp dụng tới một lệnh switch:

Biểu thức bieu_thuc được sử dụng trong một lệnh switch phải có kiểu là integer hoặc liệt kê, hoặc là một trong các kiểu lớp trong đó lớp có một hàm biến đổi đơn tới một kiểu integer hoặc kiểu liệt kê.

Bạn có thể có bất kỳ số lệnh case nào trong một switch. Mỗi case được theo sau bởi giá trị để được so sánh và một dấu hai chấm.

bieu_thuc_hang, là biểu thức hằng, cho một case phải cùng kiểu dữ liệu với biến trong switch, và nó phải là hằng số.

Khi biến được chuyển tới là cân bằng với một case, lệnh theo sau case đó sẽ thực thi tới khi gặp lệnh break.

Khi gặp lệnh break, switch kết thúc, và dòng điều khiển nhảy tới dòng lệnh tiếp theo của lệnh switch đó.

Không phải mỗi case cần chứa một lệnh break. Nếu không có lệnh break nào xuất hiện, dòng điều khiển sẽ không tới được case tiếp theo cho tới khi bắt gặp một lệnh break.

Một lệnh switch có thể có một case mặc định tùy chọn, mà phải xuất hiện ở cuối cùng của switch. Case mặc định này có thể được sử dụng để thực hiện một nhiệm vụ khi không có case nào true. Trong trường hợp case mặc định này thì không cần lệnh break.

Sơ đồ

Sơ đồ lệnh switch case trong C/C++

Ví dụ

#include <iostream> 
using namespace std; 
int main () 
{ 
    // Khai bao bien cuc bo: 
    char hocluc = 'B'; 
    switch(hocluc) 
    { 
        case 'A' : 
            cout << "Gioi!" << endl; 
            break; 
        case 'B' : 
        case 'C' : 
            cout << "Kha" << endl; 
            break; 
        case 'D' : 
            cout << "Trung binh" << endl; 
            break; 
        case 'F' : 
            cout << "Phai hoc lai!!" << endl; 
            break; 
        default : 
            cout << "Gia tri khong hop le" << endl; 
    } 
    cout << "Hoc luc cua ban la " << hocluc << endl; 
    return 0; 
}

Chạy chương trình C/C++ trên sẽ cho kết quả như sau:

Kha                                                                                                                 
Hoc luc cua ban la B

Lồng các lệnh if trong C++

Nó là hợp lệ để lồng các lệnh if-else trong C++, nghĩa là bạn có thể sử dụng một lệnh if hoặc else bên trong lệnh if hoặc else khác.

Cú pháp

Cú pháp để lồng các lệnh if trong C++ như sau:

if( bieu_thuc_boolean 1) 
{ 
    // Thuc thi khi bieu thuc boolean 1 la true 
    
    if(bieu_thuc_boolean 2) 
    { 
        // Thuc thi khi bieu thuc boolean 2 la true 
        } 
}

Bạn có thể lồng else if…else theo cách tương tự như bạn đã lồng lệnh if.

Ví dụ

#include <iostream> 
using namespace std; 
int main () 
{ 
    // Khai bao bien cuc bo: 
    int a = 100; 
    int b = 200; 
    // kiem tra dieu kien cua bieu thuc boolean 
    if( a == 100 ) 
    { 
        // neu dieu kien la true thi kiem tra tiep dieu kien sau 
        if( b == 200 ) 
        { 
            // neu dieu kien la true thi in dong sau 
            cout << "Gia tri cua a la 100 va b la 200" << endl;            
        }         
    } 
    cout << "Gia tri chinh xac cua a la: " << a << endl; 
    cout << "Gia tri chinh xac cua b la: " << b << endl; 
    return 0;     
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Kết quả khi chạy lồng các lệnh if trong C++

Lồng các lệnh switch trong C++

Nó là có thể để có một lệnh switch như là một phần của dãy lệnh trong một lệnh switch ở vòng ngoài. Ngay cả khi hằng số case trong và ngoài lệnh switch chứa các giá trị bình thường, sẽ không có sự xung đột diễn ra ở đây.

C++ xác định có ít nhất 256 mức độ lồng cho lệnh switch được cho phép.

Cú pháp

Cú pháp để lồng các lệnh switch trong C++ như sau:

switch(ch1) 
{ 
    case 'A': 
        cout << "A nay la mot phan cua lenh switch ben ngoai"; 
        switch(ch2) 
        { 
            case 'A': 
                out << "A nay la mot phan cua lenh switch ben trong"; 
                break; 
            case 'B': // ... 
        } 
        break; 
    case 'B': // ... 
}

Ví dụ

#include <iostream> 
using namespace std; 
int main () 
{ 
    // Khai bao bien cuc bo: 
    int a = 100; 
    int b = 200; 
    switch(a) 
    { 
        case 100: 
            cout << "Day la mot phan cua lenh switch ben ngoai" << endl; 
            switch(b) 
            { 
                case 200: 
                    cout << "Day la mot phan cua lenh switch ben trong" << endl; 
            } 
    } 
    cout << "Gia tri chinh xac cua a la: " << a << endl; 
    cout << "Gia tri chinh xac cua b la: " << b << endl; 
    return 0; 
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Kết quả chạy lồng các lệnh switch trong C++

Toán tử điều kiện ? : trong C++

Chúng ta đã bàn về Toán tử điều kiện ? : trong chương trước mà có thể được dùng để thay thế cho lệnh if...else. Nó có mẫu chung như sau:

Exp1 ? Exp2 : Exp3;

Trong đó Exp1, Exp2 và Exp3 là các biểu thức. Chú ý việc sử dụng và đặt của dấu hai chấm.

Giá trị của biểu thức Exp1 trước dấu ? có giá trị true, Exp2 được thực hiện, và giá trị của nó là giá trị của biểu thức. Nếu Exp1 là false thì Exp3 được thực hiện và giá trị của nó là giá trị của biểu thức.

Theo Tutorialspoint

Bài trước: Vòng lặp trong C++

Bài tiếp: Hàm trong C/C++

Thứ Sáu, 10/04/2020 17:41
52 👨 3.965
0 Bình luận
Sắp xếp theo