Câu lệnh rẽ nhánh
Câu lệnh rẽ nhánh sẽ thực hiện một đoạn code nếu thỏa mãn điều kiện.
int a = 4;
if (a < 5){
cout << a << " < 5";
}
Ở đây, ta có \(a = 4 < 5\) nên ta sẽ in 4 < 5
.
Nếu ta muốn xét cả trường hợp \(a \ge 5\), chương trình sẽ “rẽ nhánh” câu lệnh thực hiện đoạn code khác khi điều kiện \(a < 5\) không thỏa mãn.
int a = 5;
if (a < 5){
cout << a << " < 5";
} else {
cout << a << " >= 5";
}
Ta cũng có thể thêm một câu lệnh rẽ nhánh khác vào else
.
int a = 5;
if (a < 5){
cout << a << " < 5";
} else if (a > 5) {
cout << a << " > 5";
} else {
cout << a << " == 5";
}
Việc viết else if
tương tự với:
else {
if([...]){
}
}
Toán tử ba ngôi
Toán tử ba ngôi (ternary operator) giúp rút gọn code khi sử dụng if-else
để gán giá trị.
Thay vì viết:
if ([điều kiện]){
var = x;
} else {
var = y;
}
Ta có thể viết:
var = [điều kiện] ? x : y;
Ví dụ, thay vì viết:
int x = 7;
if (x < 8) {
cout << "Hi";
} else{
cout << "Hello";
}
Ta có thể viết:
int x = 7;
cout << (x < 8 ? "Hi" : "Hello");
switch-case
Ta sử dụng lệnh switch
cho một biến để xét một danh sách các trường hợp (case) mà nếu biến có giá trị bằng trường hợp ấy.
switch ([biến]){
case [trường hợp 1]:
// code
break;
case [trường hợp 2]:
// code
break;
// ...
case [trường hợp n]:
// code
break;
default:
// code
}
Chương trình của ta sẽ thực hiện các bước sau:
switch
xét một biến nào đó.- Với mỗi
case
, chương trình sẽ kiểm tra nếu biến có giá trị bằngcase
không. Nếu bằng, chương trình sẽ thực hiện đoạn code trongcase
. break;
để thoát khỏiswitch
nếucase
thỏa mãn. Có thể không viếtbreak
.- Nếu không có case nào thỏa mãn, chương trình sẽ chạy đoạn code trong
default
. Có thể không viếtdefault
int score = 10;
switch (score){
case 1: cout << "1"; break;
case 2: cout << "2"; break;
case 3: cout << "3"; break;
case 4: cout << "4"; break;
case 5: cout << "5"; break;
case 6: cout << "6"; break;
case 7: cout << "7"; break;
case 8: cout << "8"; break;
case 9: cout << "9"; break;
case 10: cout << "10"; break;
default: cout << "No"; break;
}