For...Next Statement

Lặp lại những câu lệnh nằm giữa khối For...Next (trong...kế tiếp) một số lần nào đó.

Cú pháp:

For counter=start To end [Step step]

khối câu lệnh

[Exit For]

khối câu lệnh

Next [counter]

Biến:

Counter: bộ đếm vòng lặp được gán đầu tiên giá trị bên phải dấu bằng (Đầu). Chỉ giá trị thuộc số là hợp lệ. Bộ đếm vòng lặp thì tăng hay giảm tùy theo biến Bước đến khi đi qua Cuối.

Đầu : biến thuộc số mà xác định giá trị đầu tiên ở đầu của vòng lặp.

Cuối : biến thuộc số mà xác định giá trị cuối cùng ở cuối của vòng lặp.

Bước : đặt giá trị theo đó cần tăng/giảm bộ đếm vòng lặp. Không đưa ra Bước thì bộ đếm vòng lặp được tăng/giảm theo một. Trong trường hợp này, Cuối phải lớn hơn Đầu. Muốn giảm Bộ đếm thì Cuối phải nhỏ hơn Đầu, và Bước phải được gán một giá trị âm.

Vòng lặp For...Next lặp lại tất cả các câu lệnh trong vòng lặp số lần đã ghi rõ bằng tham số.

Trong khi giảm biến đếm, LibreOffice Basic kiểm tra nếu giá trị cuối đã được tới chưa. Một khi bộ đếm đi qua giá trị cuối, vòng lặp tự động kết thúc.

Cũng có thể lồng nhau nhiều câu lệnh For...Next. Nếu bạn không ghi rõ một biến phía sau câu lệnh Next, Next tự động tham chiếu đến câu lệnh For mới đây.

Nếu bạn ghi rõ một bước tăng/giảm 0, những câu lệnh nằm giữa ForNext được lặp lại liên tục.

Khi đếm xuống biến đếm, LibreOffice Basic kiểm tra bị tràn hay bị tràn ngược. Vòng lặp kết thúc khi Bộ đếm lớn hơn Cuối (giá trị Bước dương) hoặc nhỏ hơn Cuối (giá trị Bước âm).

Hãy dùng câu lệnh Exit For (thoát trong) để thoát tuyệt đối vòng lặp. Câu lệnh này phải nằm bên trong một vòng lặp kiểu For...Next (trong...kế tiếp). Dùng câu lệnh If...Then (nếu...thì) để thử điều kiện thoát như theo đây:

For...

câu lệnh

If condition = True Then Exit For

câu lệnh

Tiếp

Ghi chú : trong vòng lặp lồng nhau kiểu For...Next, nếu bạn thoát khỏi một vòng lặp một cách không điều kiện dùng Exit For, chỉ thoát khỏi một vòng lặp.

Ví dụ :

Mẫu thí dụ theo đây dùng hai vòng lặp lồng nhau để sắp xếp một mảng chuỗi có 10 phần tử ( sEntry() ), đầu tiên được điền bằng các nội dung khác nhau :

Sub ExampleSort

Dim sEntry(9) As String

Dim iCount As Integer

Dim iCount2 As Integer

Dim sTemp As String

    sEntry(0) = "Trường"

    sEntry(1) = "Huyền"

    sEntry(2) = "Minh"

    sEntry(3) = "Sơn"

    sEntry(4) = "Trung"

    sEntry(5) = "Quý"

    sEntry(6) = "Hương"

    sEntry(7) = "Hoa"

    sEntry(8) = "Tuấn"

    sEntry(9) = "Nguyệt"

    For iCount = 0 To 9

        For iCount2 = iCount + 1 To 9

            If sEntry(iCount) > sEntry(iCount2) Then

                sTemp = sEntry(iCount)

                sEntry(iCount) = sEntry(iCount2)

                sEntry(iCount2) = sTemp

            End If

        Next iCount2

    Next iCount

    For iCount = 0 To 9

        Print sEntry(iCount)

    Next iCount

End Sub