[Java căn bản] Bài 7: Các loại vòng lặp trong Java

[Java căn bản] Bài 7: Các loại vòng lặp trong Java

Bạn chắc chắn không muốn viết đi, viết lại một đoạn code giống nhau để xử lý một công việc đơn điệu, và thật tế cũng chẳng có ai làm như thế cả. Vòng lặp là một trong những thành phần được sử dụng nhiều nhất để thao tác với dữ liệu hay các công việc lặp đi lặp lại nhiều lần. Trong Java vòng lặp cũng tương tự như các ngôn ngữ khác. Trong bài viết này, mình sẽ chia sẻ với bạn về 4 loại vòng lặp phổ biến trong Java.

Vòng lặp while trong Java

While là một vòng lặp thực hiện công việc lặp lại một tác vụ nào đó với điều kiện được cho trước. Cú pháp

while(Bieu_thuc)
{
   //Công việc
}
  • Biểu thức trong while là một biểu thức trả về giá trị boolean, ví dụ A > 5. Ví dụ:
public class tuandc {
 static int a = 10;
 public static void main(String[] args) { 
   int i = 1;
   while (a > i){
      System.out.println(i);
      i++; 
   } 
 }
}

Với while, điều kiện sẽ được kiểm tra trước khi vòng lặp được thực hiện. Trong vòng lặp này bạn phải lưu ý kiểm soát tốt giá trị để không xảy ra hiện tượng lặp không có điểm dừng. Ví dụ, nếu mình bỏ đoạn i++;  thì vòng lặp sẽ trở thành vòng lặp không có điểm dừng vì điều kiện a > i là luôn luôn đúng.

Vòng lặp for trong Java

Vòng lặp for là một loại vòng lặp được dùng nhiều hơn vòng lặp while. Với for thì giá trị của biến tăng được đặt này trong điều kiện vòng lặp nên sẽ khó xảy ra tình trạng vòng lặp không có điểm dừng. Cú pháp:

for(bien_khoi_tao; bieu_thuc; bien_cap_nhat)
{
   //Công việc
}
  • bien_khoi_tao : là một biến được tạo ra trong vòng lặp để làm điều kiện so sánh trong biểu thức.
  • bieu_thuc : là một biểu thức trả về giá trị boolean.
  • bien_cap_nhat : là hành động cập nhật giá trị cho biến khởi tạo.

Sau mỗi vòng, bien_cap_nhat sẽ được thực thi, bieu_thuc được kiểm tra lại trước khi công việc được tiếp tục thực hiện. Ví dụ.

public class tuandc {
 static int a = 10;
 public static void main(String[] args) { 
   for (int i=0; i<a; i ++)
   {
     System.out.println(i);
   }
 }
}

Với tính chất đầy đủ hơn so với while thì for là một vòng lặp thường xuyên được sử dụng hơn nhiều. Tuy nhiên cả whilefor đều có đặc điểm chung là đều kiểm tra điều kiện trước khi thực thi công việc, trong một số trường hợp bạn muốn thực hiện công việc trước khi thực thi thì bạn phải dùng đến một vòng lặp khác.

Vòng lặp do … while trong Java

Ngược lại so với whilefor, thì do...while sẽ cho phép thực hiện ít nhất một lần trước khi kiểm tra điều kiện. Đối với hai vòng lặp trên, công việc có thể sẽ không được thực hiện lần nào, nhưng đối với vòng lặp này nó sẽ ít nhất một lần được thực hiện công việc. Cú pháp:

do
 {
   // Công việc
 }while(Bieu_thuc);

Mình sẽ không giải thích thêm nữa vì mọi thứ đều rất dễ hiểu rồi. Ví dụ như sau:

public class tuandc {
 static int a = 10;
 public static void main(String[] args) { 
   do{
      System.out.println(a);
      a++;
     } while(a<10); 
 }
}

Nếu bạn thực thi ví dụ trên bạn sẽ thấy mặc dù không đủ điều kiện (a < 10) nhưng công việc trong do vẫn được thực thi 1 lần.

Vòng lặp foreach trong Java

foreach là vòng lặp mới trong Java 5. Mặc dù trước đó nó đã được sử dụng trên nhiều loại ngôn ngữ lập trình khác. Nếu bạn làm việc với cơ sở dữ liệu, các mảng thì foreach là một vòng lặp thường xuyên được sử dụng với những kiểu dữ liệu đó, vòng lặp này không cần phải khai báo điều kiện để sử dụng, nó sẽ tự động dừng khi lặp hết giá trị trong biểu thức hoặc mảng. Cú pháp:

for(Khai_bao_bien : Bieu_thuc/Mang)
{
   //Công việc
}

Biến được khai báo trong foreach sẽ dùng để lưu trữ từng giá trị lặp được lấy ra trong biểu thức hoặc mảng. Ví dụ:

public class tuandc {
 static int a = 10;
 public static void main(String[] args) { 
   int [] nums = {5, 10, 15, 20};
   for( int i:nums){
     System.out.println(i);
   }
 }
}

Vòng lặp này vẫn sử dụng từ khóa for, một sự bất tiện không hề nhỏ trong việc lập trình, các ngôn ngữ khác sử dụng từ foreach rất dễ phân biệt, đây là điều mình không thích trong ngôn ngữ Java.

Các lệnh điều khiển vòng lặp

Trong quá trình sử dụng vòng lặp, đôi khi chúng ta cần dừng vòng lặp ở một điều kiện nào đó hoặc tiếp tục thì chúng ta cần thêm hai lệnh để điều khiển, đó là break (dừng vòng lặp) và continue (tiếp tục vòng lặp).

Một ví dụ về break:

public class tuandc {
 static int a = 10;
 public static void main(String[] args) { 
   int [] nums = {5, 10, 15, 20};
   for( int i:nums){
     if(i == 10){
       break;
     }
     System.out.println(i);
   }
 }
}

Continue thì tương tự nhé.

Các bài liên quan

Tuấn ĐC

Tuấn ĐC

Tôi thích tự do, làm những gì mình thích, thích đi nhiều nơi và học được nhiều thứ.

Liên hết bài viết: ""