Câu lệnh while/until:

Một phần của tài liệu Phân tích Cấu trúc chương trình Perl, các kiểu dữ liệu và các thao tác trên dữ liệu (Trang 56)

4. Các lệnh điều khiển chương trình: Khối các câu lệnh:

4.2Câu lệnh while/until:

Không một ngôn ngữ thuật toán nào lại hoàn chỉnh mà không có một dạng lặp nào đó (thực hiện lặp lại một khối các câu lệnh). Perl có thể lặp bằng việc dùng câu lệnh while: while (bieu thuc) {

cau lenh 1; cau lenh 2; cau lenh 3; ...

}

Để thực hiện câu lệnh while này, Perl tính biểu thức điều khiển. Nếu giá trị này là đúng (bằng việc dùng ý tưởng về cái đúng của câu lệnh if), thì thân của câu lệnh while sẽ được tính một lần. Điều này được lặp lại cho tới khi biểu thức điều khiển trở thành sai, tại điểm đó Perl chuyển sang câu lệnh tiếp sau while. Chẳng hạn:

print "Ban bao nhieu tuoi roi?" $a = <STDIN>;

chop($a);

whileless ($a > 0) {

print "Vao luc nay ban moi $a tuoi.\n"; $a--;

}

Đôi khi nói "hãy làm việc đó trong khi điều này sai" lại dễ hơn là nói "hãy làm việc đó trong khi không điều này là đúng”. Một lần nữa, Perl lại có câu trả lời. Thay cho while là until, cũng cho kết quả mong muốn:

until (bieu thuc) { cau lenh 1; cau lenh 2; cau lenh 3; ... }

Chú ý rằng trong cả hai dạng while và until, các câu lệnh thân sẽ bị bỏ qua hoàn toàn nếu biểu thức điều khiển là giá trị kết thúc ngay từ lúc bắt đầu. Chẳng hạn, nếu người dùng đưa vào một độ tuổi bé hơn 0 cho đoạn chương trình trên (chương trình while) thì Perl sẽ bỏ qua thân chu trình.

Có thể là biểu thức điều khiển sẽ chẳng bao giờ để cho chu trình thoá ra được. Điều này hoàn toàn hợp pháp, và đôi khi cũng là mong muốn nữa, và do vậy không bị coi như một lỗi. Chẳng hạn, bạn có thể muốn một chu trình cứ lặp lại mãi chừng nào bạn còn chưa phạm phải lỗi, và rồi có một đoạn trình giải quyết lỗi đi theo sau chu trình

Một phần của tài liệu Phân tích Cấu trúc chương trình Perl, các kiểu dữ liệu và các thao tác trên dữ liệu (Trang 56)