Cấu trúc lặp Do Loop While | Do Loop Until

Một phần của tài liệu Thực hành với visual basic (Trang 42)

Trái với cấu trúc lặp Do while là kiểm tra điều kiện trước khi thực hiện công việc, Cấu trúc lặpDo ... Loop WhileDo ... Loop Untillại thực hiện công việc sau đó mới kiểm tra điều kiện lặp (Cấu trúc Do...Loop While giống như cấu trúcRepeat ... Until trong PAscal).

Thực hành:Viết chương trình nhập vào một danh sách gồm Họ tên và điểm thi của sinh viên trong một lớp. Việc nhập kết thúc nếu họ tên nhập vào là một xâu rỗng.

Hướng dẫn:

• Công việc nhập lặp đi lặp lại do vậy cần sử dụng vòng lặp

• Số lần lặp là không xác định nên không thể sử dụng vòng lặpfor

• Việc kiểm tra được tiến hành sau khi người dùng nhập họ tên, do vậy cần dùng vòng lặpDo ... Loop While.

Viết lệnh (sử dụng cấu trúc Do ... Loop While):

Option Explicit

'/// Định nghĩa kiểu bản ghi (Kiểu dữ liệu mới)

'/// Kiểu bản ghi định nghĩa trong Form phải có thuộc tính là Private (không được là public)

PrivateTypeKieu_SinhVien HoTenAsString

DiemAsInteger

End Type

DimNAsInteger'/// Dùng để lưu số lượng phần tử đã nhập vào

PrivateSubForm_Load()

DimSinhVien(100)AsKieu_SinhVien N = 0

N = N + 1

SinhVien(N).HoTen = InputBox("Họ tên của sinh viên thứ " & N) SinhVien(N).Diem = InputBox("Điểm của sinh viên thứ " & N)

LoopWhile SinhVien(N).HoTen <> ""

'/// Hiển thị kết quả vừa nhập

DimiAsInteger

Fori = 1 To N - 1

MsgBox "Họ tên : " & SinhVien(i).HoTen & " Điểm: " & SinhVien(i).Diem

Next End Sub

Viết lệnh (sử dụng cấu trúc Do ... Loop Until):

Option Explicit

'/// Định nghĩa kiểu bản ghi (Kiểu dữ liệu mới)

'/// Kiểu bản ghi định nghĩa trong Form phải có thuộc tính là Private (không được là public)

PrivateTypeKieu_SinhVien HoTenAsString

DiemAsInteger

End Type

DimNAsInteger'/// Dùng để lưu số lượng phần tử đã nhập vào

PrivateSubForm_Load()

DimSinhVien(100)AsKieu_SinhVien N = 0

Do

N = N + 1

SinhVien(N).HoTen = InputBox("Họ tên của sinh viên thứ " & N) SinhVien(N).Diem = InputBox("Điểm của sinh viên thứ " & N)

Loop Until SinhVien(N).HoTen = ""

'/// Hiển thị kết quả vừa nhập

DimiAsInteger

Fori = 1 To N - 1

Debug.Print "Họ tên : " & SinhVien(i).HoTen & " Điểm: " & SinhVien(i).Diem

Next End Sub

Nhận xét:

• Cấu trúc Do ...LoopWhile và cấu trúc Do ... LoopUntil đều thực hiện công việc lặp sau đó mới kiểm tra điều kiện nhưng trong cấu trúc lặp Do ...Loop

While thì việc lặp chỉ kết thúc nếu điều kiện là sai, còn Do ...LoopUntil thì kết thúc nếu điều kiện lặp là đúng (giống với Repeat until trong PAscal)

Một phần của tài liệu Thực hành với visual basic (Trang 42)

Tải bản đầy đủ (PDF)

(141 trang)