Showing posts with label Cấu trúc lệnh. Show all posts
Showing posts with label Cấu trúc lệnh. Show all posts

Thursday, September 24, 2015

[Java] Cấu trúc lệnh trên Java

Java cung cấp hai loại cấu trúc điều khiển:
Điều khiển rẽ nhánh
•  Mệnh đề if-else
•  Mệnh đề swich-case
Vòng lặp (Loops)
•  Vòng lặp while
•  Vòng lặp do-while
•  Vòng lặp for
1 Câu lệnh if-else
Câu lệnh if-else kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện là True thì chỉ có khối lệnh sau if sẽ được thực hiện, nếu là False thì chỉ có khối lệnh sau else được thực hiện. Cú pháp:
if (conditon) 
{ 
action1 statements; 
} 
else 
{ 
action2 statements; 
}
Condition: Biểu thức boolean như toán tử so sánh.
action 1: Khối lệnh được thực thi khi giá trị điều kiện là True
action 2:Khối lệnh được thực thi nếu điều kiện trả về giá trị False
Đoạn chương trình sau kiểm tra xem các số có chia hết cho 5 hay không.
package vidu.chuong3;
class CheckNumber
{
 public static void main(String args[])
 {
  int num = 10;
  if (num % 5 == 0)
   System.out.println(num + “ is divisable for 5!”);
  else
   System.out.println(num + ” is indivisable for 5!”);
 }
Ở đoạn chương trình trên num được gán giá trị nguyên là 10. Trong câu lệnh if-else điều kiện num%5 trả về giá trị 0 và điều kiện thực hiện là True. Thông báo “10 is divisable for 5!” được in ra. Lưu ý rằng vì chỉ có một câu lệnh được viết trong đoạn “if” và “else”, bởi vậy không cần thiết phải được đưa vào dấu ngoặc móc “{” và “}”.
2 Câu lệnh switch-case
Khối lệnh switch-case có thể được sử dụng thay thế câu lệnh if-else trong trường hợp một biểu thức cho ra nhiều kết quả. Cú pháp:
swich (expression) 
{ 
case ‘value1’:  action 1 statement; 
break; 
case ‘value2’:  action 2 statement; 
break; 
………………… 
case ‘valueN’: actionN statement; 
break; 
default: default_action statement; 
}
expression- Biến chứa một giá trị xác định
value1,value 2,….valueN: Các giá trị hằng số phù hợp với giá trịtrên biến expression.
action1,action2…actionN: Khối lệnh được thực thi khi trường hợp tương ứng có giá trị True
break:Từ khoá được sử dụng để bỏ qua tất cảcác câu lệnh sau đó và giành quyền điều khiển cho cấu trúc bên ngoài switch
default: Từ khóa tuỳ chọn được sử dụng để chỉ rõ các câu lệnh nào được thực hiện chỉ khi tất cả các trường hợp nhận giá trị False
default - action:Khối lệnh được thực hiện chỉ khi tất cả các trường hợp nhận giá trị False
Đoạn chương trình sau xác định giá trị trong một biến nguyên và hiển thị ngày trong tuần được thể hiện dưới dạng chuỗi. Để kiểm tra các giá trị nằm trong khoảng từ 0 đến 6, chương trình sẽ thông báo lỗi nếu nằm ngoài phạm vi trên.
package vidu.chuong3;
class SwitchDemo
{
 public static void main(String agrs[])
 {
  int day = 2;
  switch (day)
  {
  case 0: System.out.println(“Sunday”);
   break;
  case 1: System.out.println(“Monday”);
   break;
  case 2: System.out.println(“Tuesday”);
   break;
  case 3: System.out.println(“Wednesday”);
   break;
  case 4: System.out.println(“Thursday”);
   break;
  case 5:  System.out.println(“Friday”);
   break;
  case 6: System.out.println(“Satuday”);
   break;
  default:
   System.out.println(“Invalid day of week”);
  }
 }
}
Nếu giá trị của bíến day là 2, chương trình sẽ hiển thị Tuesday, và cứ tiếp như vậy .
3 Vòng lặp While
Vòng lặp while thực thi khối lệnh khi điều kiện thực thi vẫn là True và dừng lại khi điều kiện thực
thi nhận giá trị False. Cú pháp:
while(condition) 
{ 
action statements; 
}
condition:có giá trị bool; vòng lặp sẽ tiếp tục cho nếu điều kiện vẫn có giá trị True.
action statement:Khối lệnh được thực hiện nếu condition nhận giá trị True
Đoạn chương trình sau tính tổng của 5 số tự nhiên đầu tiên dùng cấu trúc while.
package vidu.chuong3;
class WhileDemo
{
 public static void main(String args[])
 {
  int a = 5, sum = 1;
  while (a >= 1)
  {
   sum += a;
   a--;
  }
  System.out.println(“The sum is “ + sum);
 }
}
Ở ví dụ trên, vòng lặp được thực thi cho đến khi điều kiện a>=1 là True. Biến a được khai báo bên ngoài vòng lặp và được gán giá trị là 5. Cuối mỗi vòng lặp, giá tri của a giảm đi 1. Sau năm vòng giá trị của a bằng 0. Điều kiện trả về giá trị False và vòng lặp kết thúc. Kết quả sẽ được hiển thị “ The sum is 15”
4 Vòng lặp do-while
Vòng lặp do-while thực thi khối lệnh khi mà điều kiện là True, tương tự như vòng lặp while,
ngoại trừ do-while thực hiện lệnh ít nhất một lần ngay cả khi điều kiện là False. Cú pháp:
do{
action statements;
}while(condition); 
condition:Biểu thức bool; vòng lặp sẽ tiếp tục khi mà điều kiện vẫn có giá trị True.
action statement:Khối lệnh luôn được thực hiện ở lần thứ nhất, từ vòng lặp thứ hai, chúng được thực hiện khi condition nhận giá trị True.
Ví dụ sau tính tổng của 5 số tự nhiên đầu tiên dùng cấu trúc do-while.
package vidu.chuong3;
class DoWhileDemo
{
 public static void main(String args[])
 {
  int a = 1, sum = 0;
  do{
   sum += a;
   a++;
  } while (a <= 5);
  System.out.println(“Sum of 1 to 5 is “ + sum);
 }
}
Biến a được khởi tạo với giá trị 1, sau đó nó vừa được dùng làm biến chạy (tăng lên 1 sau mỗi lần lặp) vừa được dùng để cộng dồn vào biến sum. Tại thời điểm kết thúc, chương trình sẽ in ra Sum of 1 to 5 is 15.
5 Vòng lặp for
Vòng lặp for cung cấp một dạng kết hợp tất cả các đặc điểm chung của tất cả các loại vòng lặp: giá trị khởi tạo của biến chạy, điều kiện dừng của vòng lặp và lệnh thay đổi giá trị của biến chạy.
Cú pháp:
for(initialization statements; condition; increment statements) 
{ 
action statements;

}
initialization statements: khởi tạo giá trị ban đầu cho các biến chạy, các lệnh khởi tạo được phân cách nhau bởi dấu phẩy và chỉ thực hiện duy nhất một lần vào thời điểm bắt đầu của vòng lặp.
condition:Biểu thức bool; vòng lặp sẽ tiếp tục cho đến khi nào điều kiện có giá trị False.
increment statements:Các câu lệnh thay đổi giá trị của biến chạy. Các lệnh này luôn được thực hiện sau mỗi lần thực hiện khối lệnh trong vòng lặp. Các lệnh phận biệt nhau bởi dấu phẩy.
Đoạn chương trình sau hiển thi tổng của 5 số đầu tiên dùng vòng lặp for.
package vidu.chuong3;
class ForDemo
{
 public static void main(String args[])
 {
  int sum = 0;
  for (int i = 1; i <= 5; i++)
   sum += i;
  System.out.println(“The sum is “ + sum);
 }
}
Ở ví dụ trên, i và sum là hai biến được gán các giá trị đầu là 1 và 0 tương ứng. Điều kiện được
kiểm tra và khi nó còn nhận giá trị True, câu lệnh tác động trong vòng lặp được thực hiện. Tiếp
theo giá trị của i được tăng lên 2 để tạo ra số chẵn tiếp theo. Một lần nữa, điều kiện lại được kiểm
tra và câu lệnh tác động lại được thực hiện. Sau năm vòng, i tăng lên 6, điều kiện trả về giá trị
False và vòng lặp kết thúc. Thông báo: The sum is 15 được hiển thị.