Sự mô phỏng các cấu trúc điều khiển.

Một phần của tài liệu thực hành ngôn ngữ lập trình (Trang 84 - 85)

Mặc dù thuần túy là lập trình OOP, các câu lệnh đều là các hành vi gửi các thông điệp đến các đối tượng, nhưng Smalltalk vẩn cung cấp một số thông điệp để người sử dụng có thể mô phỏng các cấu trúc điều khiển nhưđiều kiện, lặp tương tự như các ngôn ngữ lập trình cấu trúc.

. Cấu trúc điều kiện

Phương thức ifTrue: đối tượng nhận thông điệp là một đối tượng thuộc lớp Boolean, có đối số là một Context C. Nội dung của C sẽđược thực thi khi giá trị của đối tượng nhận thông điệp là true.

Xem thêm ifFalse:, ifTrue:ifFalse:, ifFalse:ifTrue: với nội dung tương tự. Ví dụ:

|a| a:= 2.

a > 1 ifTrue: [a:= a+1]. ^a

Kết quả sẽ là 3 .Cấu trúc lặp.

+ Lặp theo điều kiện luận lý:

Phương thức whileTrue:đối tượng nhận thông điệp là một Context C, và đối số là một Context C2, trong khi giá trị của C khi được tính vẩn còn là true thì nội dung của C2 vẩn tiếp tục được thực thi.

|a| a:=1.

[a<2] whileTrue: [a:= a+1]. ^a

Kết quả là 2.

Xem thêm whileFalse: với nội dung tương tự

+ Lặp với số lần lặp xác định trước

Lặp có chỉ số

Phương thức to:do:Đối tượng nhận thông điệp là một số nguyên, hai đối số là số nguyên và một khối có thông số. Phương thức này sẽ hoạt động tương tự lệnh for của Pascal. Ví dụ

|a| a:= 0.

1 to: 3 do: [:i| a:= a +i]. ^a

Đoạn lệnh này gần giống đoạn lệnh Pascal sau: var a, i: integer;

begin a:= 0;

for i:= 1 to 3 do begin a:= a +i. end; end;

Lặp không chỉ số.

Phương thức timesRepeat: đối tượng nhận thông điệp là một số nguyên, đối số là một Context, khi thực thi, nội dung của C sẽ được thực hiện n lần, với n là giá trị của đối tượng nhận thông điệp Ví dụ: |a| a:= 0. 4 timesRepeat: [a:= a +1]. ^a Kết quả sẽ là 4.

Một phần của tài liệu thực hành ngôn ngữ lập trình (Trang 84 - 85)

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

(103 trang)