Đ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.
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ệnh | Miê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ơ đồ
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ơ đồ
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ơ đồ
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:
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:
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++
Bạn nên đọc
-
Mảng (Array) trong C/C++
-
Bài tập C++ có lời giải (code mẫu)
-
Bài tập C++ có giải (code mẫu) về biến, kiểu dữ liệu và toán tử
-
Cú pháp C++ cơ bản
-
Toán tử trong C++
-
Bộ tiền xử lý (Preprocessor) trong C++
-
20 câu hỏi phỏng vấn lập trình C++ trình độ trung cấp và câu trả lời
-
Đọc/ghi File trong C++ | fstream trong C++
-
15 câu hỏi phỏng vấn lập trình C++ trình độ chuyên gia và câu trả lời
Cũ vẫn chất
-
Cách đăng ký VIP Zing MP3 tải nhạc chất lượng cao
Hôm qua -
Tham số hàm Python
Hôm qua -
Cách đổi DNS trên điện thoại iPhone, Android
Hôm qua 2 -
Hướng dẫn cách xem lực chiến Liên Quân Mobile
Hôm qua -
Cách bật tự động gửi ảnh HD trên Zalo
Hôm qua -
Card đồ họa không hoạt động: Nguyên nhân và cách khắc phục
Hôm qua -
Cách tắt xác thực hai yếu tố trên Facebook khi bị mất điện thoại
Hôm qua -
Cách sử dụng hàm XLOOKUP trong Excel
Hôm qua -
Graves DTCL mùa 7.5: Đồ chuẩn, đội hình Graves Lôi Long
Hôm qua -
Samsung DeX là gì? Cách biến điện thoại thành desktop với Samsung Dex
Hôm qua