a. Cú pháp
if (<điều kiện>) { khối lệnh 1; } else { khối lệnh 2; }
Trong đó
- <điều kiện> thường là biểu thức logic.
- Phần else là không bắt buộc phải có. Câu lệnh if không có phần else được gọi là câu lệnh “if thiếu”.
- <khối lệnh 1>, <khối lệnh 2> là câu lệnh hợp lệ bất kỳ: câu lệnh đơn, hoặc câu lệnh ghép, hoặc câu lệnh điều khiển.
b. Ý nghĩa
Nếu < điều kiện > thỏa mãn thì thực hiện <khối lệnh 1> ở phần if, còn ngược lại thì thực hiện < khối lệnh 2> ở phần else.
Như vậy chỉ < khối lệnh1> hoặc < khối lệnh 2> được thực hiện mà thôi.
Lệnh if elsethực hiện như sau:
B1: Kiểm tra điều kiện.
B2: Nếu < điều kiện > đúng thì <khối lệnh 1> được thực hiện.
Còn ngược lại, nếu < điều kiện > sai thì < khối lệnh 2> được thực hiện (nếu có). B3: Chuyển quyền điều khiển sang câu lệnh kế tiếp sau lệnh if.
Ví dụ 4.4a: câu lệnh if dạng 2 if (x==10)
cout << "x bang 10"; else
cout << "x khac 10";
<Điều kiện> False
Khối lệnh 1
<Lệnh>
82 Ví dụ 4.4b: câu lệnh if lồng nhau if (x> 0) cout << "x la so duong"; else if (x< 0) cout << "x la so am"; else cout << "x bang 0"; c. Lưu đồ
Hình 11: Sơ đồ hoạt động của lệnh if dạng 2.
Chú ý:
Đặc điểm chung của các câu lệnh có cấu trúc là bản thân nó chứa các câu lệnh khác. Điều này cho phép các câu lệnh if có thể lồng nhau.
Nếu nhiều câu lệnh if (có else và không else) lồng nhau việc hiểu if và else nào đi với nhau cần phải chú ý. Qui tắc là else sẽ đi với if gần nó nhất mà chưa được ghép cặp với else khác.
Ví dụ 4.5: Viết chương trình nhập vào 2 số nguyên, in ra kết quả của các phép toán: cộng, trừ, nhân, chia của 2 số nguyên đó.
#include <iostream> #include <conio.h> #include <math.h> using namespace std; int main() { int a, b;
cout<<"Ban hay nhap 2 so nguyen: “; <Điều kiện> False
Khối lệnh 1
<Lệnh>
True
Khối lệnh 2
83 cin>>a>>b;
cout<<”Tong cua 2 so vua nhap la: ”<<a+b<<”\n”; cout<<”Hieu cua 2 so vua nhap la: ”<<a-b<<”\n”; cout<<”Tich cua 2 so vua nhap la: ”<<a*b<<”\n”; if (b!=0)
cout<<”Thuong cua 2 so vua nhap la: ”<<a/b; return 0;
}
Ví dụ 4.6: Giải phương trình bậc hai: ax2 + bx + c = 0 (a ≠ 0). #include <iostream> #include <conio.h> #include <math.h> using namespace std; int main() { float a, b, c; float delta; float x1, x2; // 2 nghiem
cout << “Nhap a, b, c:\n” ; cin >> a >> b >> c ; // qui ước nhập a ≠ 0 delta = b*b - 4*a*c ;
if (delta < 0) cout << “phuong trinh vo nghiem\n” ;
else if (delta==0) cout<<“phuong trinh co nghiem kep:" << -b/(2*a) << '\n'; else
{
x1 = (-b+sqrt(delta))/(2*a); x2 = (-b-sqrt(delta))/(2*a);
cout << “nghiem 1 = " << x1 << " và nghiem 2 = " << x2 ; }
}