[Tự học lập trình Java] Bài 3: Các cấu trúc điều khiển trong Java

1. Câu lệnh if-else
Câu lệnh if-else kiểm tra kết quả của một điều kiện và thực thi một thao tác phù hợp trên cơ sở kết quả đó. Dạng của câu lệnh if-elsse rất đơn giản

Cú pháp:
if (biểu thức điều kiện)
   Khối lệnh 1; 
}
else
{
  Khối lệnh 2; 
}
Trong đó:
- (biều thức điều kiện): Biểu thức logic, trả về giá trị True hoặc False
- Khối lệnh 1: Các dòng lệnh được thực thi khi giá trị trả về là True
- else: Từ khoá xác định các câu lệnh tiếp sau được thực hiện nếu điều kiện trả về giá trị False
- Khối lệnh 2: Các câu lệnh được thực thi nếu điều kiện trả về giá trị False

Ví dụ 1: 
 - Yêu cầu:  Viết chương trình kiểm tra xem các số là chẵn hay lẻ và hiển thị thông báo phù hợp.

 - Code:

public class CheckNumber
{
 public static void main(String args[])
 {
    int num =10;
    if(num %2 == 0)
      System.out.println (num+ “is an even number”);
    else
      System.out.println (num +”is an odd number”);
  }
}

Kết quả:
  10 is an even number

Ví dụ 2:
- Yêu cầu: Viết chương trình giải phương trình bậc nhất một ẩn ax+b=0, với a,b cho trước.

- Code:

public class GiaiPTBac1
{
 public static void main(String args[])
 {
    float a,b;
    a=4; b=6;
    if(a == 0)
      if(b==0)
        System.out.println ("Phuong trinh co vo so nghiem");
      else
       System.out.println ("Phuong trinh vo nghiem");
   else
       System.out.println ("Phuong trinh co nghiem: "+(-b/a));
  }
}

Kết quả:
 Phuong trinh co nghiem: -1.5


2. Câu lệnh switch-case

Phát biểu switch-case có thể được sử dụng tại câu lệnh if-else. Nó được sử dụng trong tình huống một biểu thức cho ra nhiều kết quả. Việc sử dụng câu lệnh switch-case cho phép việc lập trình dễ dàng và đơn giản hơn.

Cú pháp:

swich (Biểu thức)
{
  case 'giá trị 1': Khối lệnh 1;
  break; // có thể có hoặc không
  case 'giá trị 2': Khối lệnh 2;
  break;
  :
  :
  case 'giá trị n': Khối lệnh n;
  break;
  default: Khối lệnh mặc định; // có thể có hoặc không
}

Trong đó:
- (Biểu thức) - Cho một giá trị xác định
- giá trị 1, giá trị 2, ... giá trị n: Các giá trị hằng số phù hợp với giá trị Biểu thức.
- Khối lệnh 1, Khối lệnh 2, ... Khối lệnh n: Các khối lệnh được thực thi khi một 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
- Khối lệnh mặc định: Các câu lệnh được thực hiện chỉ khi tất cả các trường hợp nhận giá trị False

Ví dụ 1:
- Yêu cầu: Viết chương trình 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 0 đến 6


- Code:

public class SwitchDemo
{
 public static void main(String agrs[])
 {
    int day =4;
    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”);
   }
  }
}

Kết quả:
 Thursday

3. Vòng lặp While
  Vòng lặp while được sử dụng khi vòng lặp được thực hiện mãi cho đến khi điều kiện thực thi vẫn là True. Số lượng lần lặp không đựơc xác định trước song nó sẽ phụ thuộc vào từng điều kiện.

Cú pháp:
 while (Biểu thức điều kiện)
 {
   Khối lệnh;
   :
   :
 }

Trong đó:
- (Biểu thức điều kiện): Biểu thức logic, nó trả về giá trị True hoặc False. Vòng lặp sẽ tiếp tục cho đến khi nào giá trị True được trả về.
- Khối lệnh: Các câu lệnh được thực hiện nếu condition nhận giá trị True

Ví dụ 1:
- Yêu cầu: Viết chương trình tính giai thừa của số 5. Giai thừa được tính như tích 5*4*3*2*1.
- Code:

public class WhileDemo
{
  public static void main(String args[])
  {
    int a = 5, fact = 1;
    while (a >= 1) {
       fact *=a;
       a--; // câu lệnh giúp điều kiện a>=1 tiến tới giá trị false
    }
    System.out.println("Giai thua cua 5 : "+fact);
  }
}

Kết quả:
  Giai thừa của 5: 120

  Ở 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 factorial of 5 is 120”

Ví dụ 2:
- Yêu cầu: Viết chương trình tính tổng các số chẵn từ 1 đến 2014
- Code:

public class TongChan
{
  public static void main(String args[])
  {
    int a = 1, s = 0;
    while (a <= 2014) {
      if (a%2==0)
         s +=a;
      a++;  
    }
    System.out.println("Tong cac so chan: "+s);
  }
}


Kết quả:
Tong cac so chan: 1015056

4. Vòng lặp for
Vòng lặp for được sử dụng khi vòng lặp có số lần lặp biết trước.

Cú pháp:
 for (Biểu thức 1; Biểu thức 2; Biểu thức 3)
 {
  Khối lệnh;
 }

Trong đó:
 - Biểu thức1: khởi tạo ban đầu
 - Biểu thức 2: điều kiện lặp, vòng lặp còn thực hiện khi bt2 còn đúng
 - Biểu thức 3: thiết lập lại
 - Khối lệnh: Các câu lệnh được thực hiện nếu condition nhận giá trị True


Ví dụ 1:
- Yêu cầu: Viết chương trình hiển thi tổng của 5 số chẵn đầu tiên
- Code:

public class ForDemo
 {
  public static void main(String args[])
  {
   int i=1,sum=0;
   for (i=1;i<=10;i+=2)
     sum+=i;
   System.out.println (“sum of first five old numbers is “+sum);
 }
}

Kết quả:
Sum of first five odd numbers is 25

Ở 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 11, điều kiện trả về giá trị False và vòng lặp kết thúc. Thông báo: Sum of first five odd numbers is 25 được hiển thị.


Ví dụ 2:
- Yêu cầu: Viết chương trình tính tổng các số chẵn từ 1 đến 2014
- Code:

public class TongChan
{
  public static void main(String args[])
  {
    int  s = 0;
    for(int i=2;i<=2014;i=i+2)
      s+=i;
    System.out.println("Tong cac so chan: "+s);
  }
}

Kết quả:
Tong cac so chan: 1015056

5. Vòng lặp do/while
  Vòng lặp do/while được sử dụng khi vòng lặp được thực hiện mãi cho đến khi điều kiện thực thi vẫn là True. Số lượng lần lặp không đựơc xác định trước song nó sẽ phụ thuộc vào từng điều kiện.

Cú pháp:

do{
  Khối lệnh ;
}while (Biểu thức điều kiện) ;

Trong đó:
- (Biểu thức điều kiện): Biểu thức logic, nó trả về giá trị True hoặc False. Vòng lặp sẽ tiếp tục cho đến khi nào giá trị True được trả về.
- Khối lệnh: Các câu lệnh được thực hiện nếu condition nhận giá trị True

Ví dụ 1:
- Yêu cầu: Viết chương trình tính giai thừa của số 5.Giai thừa được tính như tích 5*4*3*2*1.
- Code:

public class WhileDemo
{
  public static void main(String args[])
  {
    int a = 5,fact = 1;
   do {
     fact *=a;
     a--;
   } while (a >= 1);
   System.out.println(The Factorial of 5 is “+fact);
 }
}


 Kết quả:
  The factorial of 5 is 120

Ở 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 factorial of 5 is 120”.

6. Cấu trúc lệnh nhảy (jump)
 - Lệnh break: trong cấu trúc switch chúng ta dùng câu lệnh break để thoát thỏi cấu trúc switch trong cùng chứa nó. Tương tự như vậy, trong cấu trúc lặp, câu lệnh break dùng để thóat khỏi cấu trúc lặp trong cùng chứa nó.
- Lệnh continue: dùng để tiếp tục vòng lặp trong cùng chứa nó (ngược với break).
- Nhãn (label): Không giống như C/C++, Java không hỗ trợ lệnh goto để nhảy đến 1 vị trí nào đó của chương trình. Java dùng kết hợp nhãn (label) với từ khóa break và continue để thay thế cho lệnh goto.

--------------------------------------------------- 
Đọc thêm các bài khác:

Bài 1: Chương trình JAVA đầu tiên
Bài 2: Các kiểu dữ liệu và toán tử trong
Bài 3: Các cấu trúc điều khiển trong Java
Bài 4 : Mảng và chuỗi trong Java
Bài 5: Lớp (class) và đối tượng (object) trong Java
Bài 6:Thừa kế (Inheritance) và đa hình (Polymorphism)
Ví dụ lập trình giao diện đồ họa với Java (GUI)
Ví dụ lập trình kết nối dữ liệu với Java (JDBC)
Ví dụ về lập trình Android 

0 nhận xét:

Cảm ơn bạn đã quan tâm tới bài viết này!