Câu lệnh else if
Chúng ta sử dụng câu lệnh else if để chỉ định điều kiện mới nếu điều kiện đầu tiên sai, nói cách khác else if giúp chúng ta có thể kiểm tra nhiều điều kiện khác nhau thay vì một điều kiện duy nhất.
Giả sử trong phần trước, nếu chúng ta thêm các điều kiện như từ 13 giờ đến 14 giờ là giờ họp, từ 14 giờ đến 15 giờ là giờ vận chuyển hàng hóa tới các cửa hàng...thì chúng ta sẽ phải sử dụng nhiều if else lồng nhau dẫn tới code trở nên dài dòng và phức tạp.
If và else if giúp bạn có thể kiểm tra nhiều điều kiện và nó chỉ thực hiện duy nhất 1 khối lệnh trong các rẽ nhánh đó.
Cú pháp :
if(điều_kiện_1){
//code 1
}
else if(điều_kiện_2){
//code 2
}
else if(điều_kiện_3){
//code 3
}
...
else if(điều_kiện_n){
//code n
}
else{
//Code else
}
Lưu ý :
- Chúng ta có thể kiểm tra bao nhiêu điều kiện tùy ý
- Khối lệnh else có thể có hoặc không
- Khi rẽ nhánh nào được thực hiện, cấu trúc sẽ kết thúc
Chúng ta sử dụng IDE Online và vẫn giữ vững lập trường kiên trì với chương trình tào lao!
Chúng ta sẽ thêm việc bắt đầu làm việc lúc 8 giờ sáng. Khung giờ cần giải quyết sẽ như sau:
Trước 8g sáng: Ở nhà
8g - 12g: Làm việc
12g - 13g: Ăn trưa
13g - 14g: Họp công ty
14g - 15g: Chuyển hàng tới các cửa hàng
15g - 17g: Làm việc
Sau 17g: Về nhà
Đây là đoạn code if else lồng nhau của phần trước.
if (time < 18) {
if (time >=12 && time <= 13){
cout << "Gio An trua.";
}else{
cout << "Lam viec.";
}
} else {
cout << "Ve nha.";
}
Chúng ta sẽ sử dụng else if để sửa lại
if(time < 8){
cout << "O nha." << endl;;
}
else if(time >= 8 && time < 12 ){
cout << "Lam viec." << endl;
}
else if(time >= 12 && time < 13){
cout << "Gio An trua." << endl;
}
else if(time >= 13 && time < 14){
cout << "Hop Cong ty." << endl;
}
else if(time >= 14 && time < 15){
cout << "Chuyen hang toi cac cua hang." << endl;
}
else if(time >= 15 && time < 17){
cout << "Lam Viec." << endl;
}
else{
cout << "Ve nha." << endl;
}
Chương trình sẽ như sau, bạn thay đổi giá trị biến time để test
#include <iostream>
#include <iomanip>
using namespace std;
//typedef long long ll;
//#define ll long long
using ll = long long;
#define greet cout << "Dat Viet Lap Trinh" << endl;
typedef int arr[3];
int main(){
greet;
int a = 123;
int soTien;
int soNam;
int tongSoTien;
int x = 15 < 25 ? 100 : 200;
int diBien1= (10 < 20) && (20 >= 20);
int diBien2= (10 > 20) || (20 < 10);
long long b = 1234567890;
float c = 2.3456;
double d = 2.3456789;
char kitu= 'A';
char Ten;
bool check = true;
a +=10;
ll g = 1234567890;
arr array1{ 1 , 2, 3};
int so1 = 20;
int so2 = 18;
int so3 = 0;
int time = 15;
cout << "Gia tri cua a : " << a << endl;
cout << "Gia tri cua b : " << b << endl;
cout << "Gia tri cua c : " << c << endl;
cout << "Gia tri cua d : " << d << endl;
cout << "Gia tri cua kitu : " << kitu << endl;
cout << "Gia tri cua check : " << check << endl;
cout << "Gia tri cua check : " << boolalpha << check << endl;
cout << "Gia tri cua c : " << fixed << setprecision(2) << c << endl;
cout << "Gia tri cua d : " << fixed << setprecision(4) << d << endl;
cout << setw(12) << setfill('0') << a << endl;
cout << setw(12) << setfill(' ') << "Dat Viet" << endl;
cout << "Nhap tên của bạn, chỉ một chữ A,B,C : "<< endl;
cin >> Ten;
cout << "Ten ban la : " << Ten << endl;
cout << "Nhap so tien gui hang thang : "<< endl;
cin >> soTien;
cout << "Nhap so nam tiet kiem : "<< endl;
cin >> soNam;
tongSoTien = (soTien * 12) * soNam;
cout << "Xin chao, " << Ten << ". Sau " << soNam << " nam tich luy. Ban da tiet kiem dươc tong so tien là: " << tongSoTien << endl;
cout << "Gia tri cua x : " << x << endl;
cout << "Gia tri cua diBien1 : " << diBien1 << ". Gia tri cua diBien2 : " << diBien2 << endl;
cout << "Gia tri cua diBien1 : " << boolalpha << diBien1 << ". Gia tri cua diBien2 : " << boolalpha << diBien2 << endl;
cout << (100 > 50) << endl;
cout << (20 <= 30) << endl;
cout << (80 >= 100) << endl;
cout << "Gia tri cua g : " << g << endl;
greet;
if (20 > 18) {
cout << "20 lon hon 18"<<endl;
}
if (so1 > so2) {
cout << "so1 lon hon so2"<< endl;
}
if(so2){
cout << so2 << " khac 0" << endl;
}
if(so3){
cout << so3 << " khac 0" << endl;
}
if(time < 8){
cout << "O nha." << endl;;
}
else if(time >= 8 && time < 12 ){
cout << "Lam viec." << endl;
}
else if(time >= 12 && time < 13){
cout << "Gio An trua." << endl;
}
else if(time >= 13 && time < 14){
cout << "Hop Cong ty." << endl;
}
else if(time >= 14 && time < 15){
cout << "Chuyen hang toi cac cua hang." << endl;
}
else if(time >= 15 && time < 17){
cout << "Lam Viec." << endl;
}
else{
cout << "Ve nha." << endl;
}
}
Bấm Run để chạy chương trình
Chúng ta thấy có hai else if tương tự nhau là Làm việc.
Nếu muốn, chúng ta có thể ghép cả hai với điều kiện hoặc là ||, đây là code của chương trình sau khi thay đổi:
#include <iostream>
#include <iomanip>
using namespace std;
//typedef long long ll;
//#define ll long long
using ll = long long;
#define greet cout << "Dat Viet Lap Trinh" << endl;
typedef int arr[3];
int main(){
greet;
int a = 123;
int soTien;
int soNam;
int tongSoTien;
int x = 15 < 25 ? 100 : 200;
int diBien1= (10 < 20) && (20 >= 20);
int diBien2= (10 > 20) || (20 < 10);
long long b = 1234567890;
float c = 2.3456;
double d = 2.3456789;
char kitu= 'A';
char Ten;
bool check = true;
a +=10;
ll g = 1234567890;
arr array1{ 1 , 2, 3};
int so1 = 20;
int so2 = 18;
int so3 = 0;
int time = 15;
cout << "Gia tri cua a : " << a << endl;
cout << "Gia tri cua b : " << b << endl;
cout << "Gia tri cua c : " << c << endl;
cout << "Gia tri cua d : " << d << endl;
cout << "Gia tri cua kitu : " << kitu << endl;
cout << "Gia tri cua check : " << check << endl;
cout << "Gia tri cua check : " << boolalpha << check << endl;
cout << "Gia tri cua c : " << fixed << setprecision(2) << c << endl;
cout << "Gia tri cua d : " << fixed << setprecision(4) << d << endl;
cout << setw(12) << setfill('0') << a << endl;
cout << setw(12) << setfill(' ') << "Dat Viet" << endl;
cout << "Nhap tên của bạn, chỉ một chữ A,B,C : "<< endl;
cin >> Ten;
cout << "Ten ban la : " << Ten << endl;
cout << "Nhap so tien gui hang thang : "<< endl;
cin >> soTien;
cout << "Nhap so nam tiet kiem : "<< endl;
cin >> soNam;
tongSoTien = (soTien * 12) * soNam;
cout << "Xin chao, " << Ten << ". Sau " << soNam << " nam tich luy. Ban da tiet kiem dươc tong so tien là: " << tongSoTien << endl;
cout << "Gia tri cua x : " << x << endl;
cout << "Gia tri cua diBien1 : " << diBien1 << ". Gia tri cua diBien2 : " << diBien2 << endl;
cout << "Gia tri cua diBien1 : " << boolalpha << diBien1 << ". Gia tri cua diBien2 : " << boolalpha << diBien2 << endl;
cout << (100 > 50) << endl;
cout << (20 <= 30) << endl;
cout << (80 >= 100) << endl;
cout << "Gia tri cua g : " << g << endl;
greet;
if (20 > 18) {
cout << "20 lon hon 18"<<endl;
}
if (so1 > so2) {
cout << "so1 lon hon so2"<< endl;
}
if(so2){
cout << so2 << " khac 0" << endl;
}
if(so3){
cout << so3 << " khac 0" << endl;
}
if(time < 8){
cout << "O nha." << endl;;
}
else if((time >= 8 && time < 12) || (time >= 15 && time < 17)){
cout << "Lam viec." << endl;
}
else if(time >= 12 && time < 13){
cout << "Gio An trua." << endl;
}
else if(time >= 13 && time < 14){
cout << "Hop Cong ty." << endl;
}
else if(time >= 14 && time < 15){
cout << "Chuyen hang toi cac cua hang." << endl;
}
else{
cout << "Ve nha." << endl;
}
}
Khi chạy thử, chúng ta thấy kết quả sẽ như cũ
Không có nhận xét nào:
Đăng nhận xét