Câu lệnh lặp

Giới thiệu câu lệnh lặp trong C#

Câu lệnh lặp cho phép chúng ta thi hành một câu lệnh hay một khối lệnh nhiều lần. Để đảm bảo câu lệnh lặp không chạy vô tận thì chúng ta phải cung cấp một điều kiện đảm bảo vòng lặp của chúng ta có thể chạy với số lượng cụ thể và có kiểm soát. Minh hoạ sau sẽ giúp bạn hiểu hơn về sự thực thi của câu lệnh lặp:

Ngôn ngữ lập trình C# cung cấp 3 loại câu lệnh lặp như sau:

CÂU LỆNH MÔ TẢ
for Câu lệnh này thi hành một chuỗi các câu lệnh với số lần xác định. Chúng ta có thể thay đổi số lần lặp thông qua các biến vòng lặp
while Câu lệnh này sẽ lặp lại các lệnh trong thân vòng lặp khi mà điều kiện vòng lặp vẫn đúng. Câu lệnh while sẽ kiểm tra điều kiện trước khi chạy nội dung trong thân vòng lặp.
do-while Vòng lặp này hơi giống vòng lặp while nhưng khác ở chỗ là sẽ kiểm tra điều kiện ở cuối vòng lặp để xem có tiếp tục chạy thân vòng lặp tiếp hay không? Điều này có nghĩa là vòng lặp do-while sẽ chạy ít nhất một lần dù điều kiện kiểm tra là đúng hay sai.

Câu lệnh for

Vòng lặp for cung cấp một cách gọn nhẹ để lặp hay duyệt qua một dãy các giá trị. Lập trình viên gọi đó là vòng lặp for vì cách thức nó chạy là sẽ lặp liên tục đến khi một điều kiện cụ thể được thoả mãn. Thông qua các thành phần của vòng lặp for thì bạn có thể tính toán ra ngay số lượng lặp mà câu lệnh for sẽ chạy. Cú pháp của câu lệnh for như sau:

for (initialization; termination; increment) {
    // mã lệnh
}

Các thành phần của vòng lặp for như sau:

  • Biểu thức khởi tạo (initialization) thường dùng để khởi tạo những giá trị cho vòng lặp như biến đếm. Biểu thức này sẽ thực thi một lần và ngay trước khi bắt đầu vòng lặp.
  • Biểu thức điều kiện dừng vòng lặp (termination) chỉ ra điều kiện dừng vòng lặp. Có nghĩa là nếu biểu thức này trả về giá trị false thì vòng lặp sẽ dừng lại.
  • Biểu thức tăng (increment) sẽ được gọi sau khi mỗi lần lặp hoàn tất. Biểu thức này dùng để tăng hay giảm các giá trị dùng trong vòng lặp, thường là giá trị của biến đếm.

Ví dụ ForDemo sẽ minh hoạ rõ về cách sử dụng vòng lặp for:

Chú ý, khi bạn thay đổi giá trị của các thành phần trong vòng lặp for thì số lần lặp cung thay đổi. Khi dùng biến đếm, chúng ta nên đặt tên theo các ký tự như i, j hay k.

Trong một vài trường hợp đặc biệt, bạn muốn thực thi vòng lặp for với số lần lặp vô tận thì cú pháp như ví dụ InfinteLoopDemo sau:

Câu lệnh for đặc biệt hữu ích và phù hợp với các thao tác khi duyệt các phần tử trong các đối tượng Collection hay mảng. Giả sử chúng ta có mảng chứa 10 số nguyên như sau:

int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Tiếp theo, chúng ta sẽ viết chương trình ReadArrayDemo để duyệt và hiển thị các phần tử trong mảng trên:

Lệnh for nâng cao trong C#

Từ phiên bản C# 5, một dạng mới của lệnh for đã được giới thiệu. Đó là lệnh foreach nâng cao. Chức năng chính của lệnh này là dùng để duyệt các phần tử trong danh sách, tập hợp hay mảng.

Cú pháp:

foreach(element in iterable-item) {
   // mã lệnh
}
  • Element: Khai báo một biến có kiểu dữ liệu phù hợp với kiểu dữ liệu của các phần tử trong danh sách hay mảng. Biến này này sẽ lần lượt chứa các giá trị phần tử trong quá trình duyệt danh sách hay mảng cụ thể đó.
  • Iterable-item: Đây sẽ là tên của biến danh sách hay mảng chứa các phần tử cần duyệt.

Ví dụ:

Chú ý, chúng tôi khuyên bạn nên sử dụng cấu trúc lệnh foreach này khi duyệt các phần tử trong danh sách hay mảng thay cho dạng câu lệnh for nói chung ở phần trên.

Câu lệnh whiledo-while

Câu lệnh while sẽ tiếp tục thi hành khối lệnh bên trong vòng lặp while khi một điều kiện cụ thể vẫn đúng (true). Cú pháp lệnh while như sau:

while (biểu thức điều kiện) {
     // mã lệnh
}

Biểu thức trong câu lệnh while sẽ được kiểm tra và trả về giá trị logic boolean. Nếu biểu thức điều kiện trả về true thì câu lệnh while tiếp tục chạy nội dung vòng lặp. Vòng lặp while chỉ dừng lại khi biểu thức điều kiện trả về giá trị false.

Ví dụ WhileDemo sau đây sẽ minh hoạ rõ về cách sử dụng lệnh while:

Nếu bạn muốn chạy vòng lặp while vô tận thì bạn có thể làm theo cú pháp sau:

while (true){
    // mã lệnh
}

Ngôn ngữ lập trình C# cũng cung cấp lệnh do-while với cú pháp như sau:

do {
     // mã lệnh
} while (expression);

Sự khác nhau giữa do-whilewhile là ở chỗ do-while sẽ kiểm tra biểu thức điều kiện ở cuối của vòng lặp thay bằng ở đầu như vòng lặp while. Chính vì vậy, vòng lặp do-while sẽ chạy phần thân vòng lặp ít nhất 1 lần bất kể biểu thức điều kiện trả về giá trị true hay false.

Ví dụ DoWhileDemo sau đây sẽ minh hoạ rõ cách sử dụng cấu trúc lệnh do-while:

Câu lệnh điều khiển dừng vòng lặp

Khi bạn thực thi vòng lặp thì thường sẽ phải chạy từ đầu đến khi hết số lần lặp thì thôi. Tuy nhiên, trong một số trường hợp bạn muốn thoát khỏi lần lặp hiện tại hay là cả vòng lặp thì bạn sẽ phải dùng các câu lệnh xử lý thoát vòng lặp như sau:

LỆNH MÔ TẢ
break Thoát ngay khỏi vòng lặp và chuyển quyền điều khiển xuống lệnh ở sau vòng lặp
continue Bỏ qua các lệnh còn lại sau lệnh continue và quay về đầu vòng lặp để chạy tiếp lần lặp sau

Ví dụ BreakDemo sau đây sẽ minh hoạ cách sử dụng lệnh break:

Ví dụ về lệnh continue:

Complete and Continue