Câu lệnh if…else
Câu lệnh if…else kiểm tra kết quả một điều kiện và thực thi thao tác phù hợp trên cơ sở kết quả đó.
Cấu trúc câu lệnh như sau:
if (điều kiện)
{
Các câu lệnh thực thi khi điều kiện đúng;
}
else
{
Các câu lệnh thực thi khi điều kiện sai;
}
Trong đó: điều kiện ở đây là một biểu thức boolean như toán tử so sánh.biểu thức này trả về giá trị true hoặc false(đúng hoặc sai).
Còn các câu lệnh thực thi có thể là một hay một tập các câu lệnh.nếu là một câu lệnh thì không cần phải có 2 dấu ngoặc.
Có thể hiểu cấu trúc này như sau:
Nếu (điều kiện đúng) thì
{
Các câu lệnh thực thi khi điều kiện đúng;
}
Còn không thì
{
Các câu lệnh thực thi khi điều kiện sai;
}
Ví dụ:chương trình kiểm tra xem số a là chẵn hay lẻ và in ra màn hình thông báo
class kiemtra{
public void main(String args [ ] ){
int a=10;
if (a % 2 = = 0)
System.out.printf(“so “+a+“ la so chan”);
else
System.out.printf(“so “+a+“ la so le”);
}
}
Kết quả chương trình sẽ in ra màn hình dòng chữ “so 10 la so chan”.
Các phát biểu if…else lồng nhau.
Các phát biểu if…else có thể đặt lồng nhau theo các cấu trúc như sau:
if (điều kiện 1)
if (điều kiện 2){
}
…
else{
}
else {
}
Hoặc là:
if (điều kiện 1){
}
else{
if (điều kiện 2){
}
else {
…
}
}
Câu lệnh switch…case
Phát biểu switch…case dùng khi biểu thức xét điều kiện có nhiều kết quả.phát biểu này cũng có thể được viết lại bằng các phát biểu if…else lồng nhau.
Cấu trúc của phát biểu này như sau:
switch (biểu thức)
{
case ‘kết quả 1’:{
Các câu lệnh thực thì khi biểu thức có kết quả 1;
break;
}
case ‘kết quả 2’:{
Các câu lệnh thực thì khi biểu thức có kết quả 2;
break;
}
…
case ‘kết quả n’:{
Các câu lệnh thực thì khi biểu thức có kết quả n;
break;
}
default:{
Các câu lệnh thực thì khi biểu thức không có kết quả nào giống các kết quả đưa ra;
}
ví dụ:in ra màn hình thông báo về số a
class kiemtra1{
int a=2;
switch (a){
case 1:{
system.out.printf(“so ”+a+” là so 1”);
break;
}
case 2:{
system.out.printf(“so ”+a+” là so 2”);
break;
}
case 3:{
system.out.printf(“so ”+a+” là so 3”);
break;
}
default: system.out.printf(“so ”+a+” la so nguyen khac 1,2,3”);
}
}
Kết quả là sẽ in ra màn hình dòng chữ “so 2 la so 2” vì ta đã khởi tạo a=2,còn nếu a khác 1,2,3 giả dụ a=4 thì sẽ in ra dòng chữ “so 4 la so nguyen khac 1,2,3”
Chương trình trên có thể viết lại bằng các phát biểu if…else lồng nhau như sau:
class kiemtra2{
int a=2;
if (a= =1) system.out.printf(“so ”+a+”la so 1”);
else {
if (a= =2) system.out.printf(“so ”+a+”la so 2”);
else {
if (a= =3) system.out.printf(“so ”+a+”la so 3”);
else
system.out.printf(“so ”+a+”la so nguyen khac 1,2,3”);
}
}
}
Kết quả của chương trình vẫn là in ra màn hình dòng chữ “so 2 la so 2”.