Posted by : Unknown 22/4/13

Với cấu trúc lặp, người lập trình có thể chỉ định một hoặc nhiều câu lệnh sẽ được thực hiện lặp lại nhiều lần trong khi giá trị của biểu thức luận lý so sánh vẫn còn đúng. Giống như cấu trúc rẽ nhánh, cấu trúc lặp được phép sử dụng bên trong một lô (batch) các lệnh hoặc bên trong một thủ tục nội tại. Giữa cấu trúc rẽ nhánh và cấu trúc lặp không có thứ tự ưu tiên khi chúng lồng vào nhau và cấp độ lồng nhau là không có giới hạn.
Thực tế việc sử dụng cấu trúc lặp WHILE bị giới hạn trong nhiều trường hợp. Bởi vì bản thân các lệnh truy vấn cập nhật dữ liệu như là : SELECT, UPDATE SET, DELETE trong Transaction-SQL đã tự động thực hiện việc lặp từ dòng dữ liệu đầu tiên đến dòng dữ liệu cuối cùng bên trong bảng.
Cấu trúc lặp WHILE thông thường được dùng với các biến có kiểu dữ liệu cursor, cách thức sử dụng biến kiểu dữ liệu cursor sẽ được hướng dẫn trong các phần sau.
Cú pháp :
Trong đó :
• Biểu thức luận lý : thông thường là một biểu thức so sánh để chỉ các lệnh sẽ được lặp lại trong khi mà giá trị của biểu thức vẫn còn đúng.
• Các lệnh lặp : các câu lệnh được thực hiện bên trong vòng lặp.
Ví dụ :
Để in ra 10 số nguyên dương bắt đầu từ 100. Bạn sử dụng cấu trúc lặp WHILE như sau :
Kết quả trả về :
Bạn có thể sử dụng từ khóa BREAK lồng vào cấu trúc lặp WHILE để có thể kết thúc việc lặp của các lệnh bên trong vòng lặp mà không cần xét đến giá trị trả về của biểu thức luận lý dùng để so sánh phía sau từ khóa WHILE phải là sai. Tuy nhiên từ khóa BREAK thường được sử dụng kèo theo với một biểu thức luận lý khác.
Ví dụ :
Thực hiện việc lặp giống ví dụ trên, tuy nhiên muốn rằng vòng lặp sẽ bị kết thúc khi mới in tới số nguyên 105. Bạn sử dụng cấu trúc lặp WHILE như sau :
Kết quả trả về :
Bạn cụng có thể sử dụng từ khóa CONTINUE lồng vào cấu trúc lặp WHILE để chỉ định các lệnh bên trong vòng lặp ở phía dưới từ khóa CONTINUE tạm thời không thực hiện tiếp, khi đó con trỏ vòng lặp sẽ nhảy về đầu dòng lặp để kiểm tra giá trị của biểu thức luận lý so sánh là vẫn còn đúng hay không. Tuy nhiên từ khóa CONTINUE thông thường được dùng kèm theo với một biểu thức luận lý khác.
Ví dụ :
Thực hiện việc lặp giống các ví dụ trên, tuy nhiên muốn rằng vòng lặp sẽ in xót số nguyên 105. Bạn sử dụng cấu trúc lặp WHILE như sau :
Kết quả trả về :
Kết chứng kết quả trả về bạn suy luận khi vòng lặp thực hiện đến giá trị của biến @Songuyen = 105 thì khi đó lệnh PRINT "Số nguyên : " ... không được thực hiện và con trỏ chương trình được quay lên đầu vòng lặp để kiểm tra tiếp biểu thức luận lý so sánh.
Sơ đồ tóm tắt ý nghĩa của cấu trúc lặp WHILE kèm với các từ khóa CONTINUE hoặc BREAK :
Cú pháp :
Ví dụ :
Để tăng tự động tỷ lệ phần trăm cho các vật tư trong bảng VATTU theo quy tắc sau :
• Mỗi lần chỉ tăng lên 5% cho các vật tư có giá trị tại cột tỷ lệ nhỏ hơn 30%.
• Lặp lại hành động tăng trong khi mà giá trị trung bình tỷ lệ phần trăm của các vật tư vẫn còn thấp hơn 40%.
Bạn sử dụng các lệnh như sau :
Nhận xét : ví dụ trên khá phức tạp, do thế bạn phải chèn thêm vào các ghi chú (comment) để giúp bạn thất được từng xử lý rời rạc nhằm dễ xem, dễ hiểu. Trong Transaction-SQL, bạn có thể chèn các ghi chú trong các câu lệnh bằng hai dấu trừ liên tiếp nhau hoặc muốn che lại một khối các lệnh liên tiếp nhau thì bạn sẽ sử dụng cặp ký tự như bên dưới :
Ngoài ra trong vòng lặp bạn có thể sử dụng lệnh IF EXISTS dùng để kiểm tra trường hợp sau khi đã tăng hết tất cả tỷ lệ phần trăm các vật tư với đều lớn hơn 30 mà trung bình tỷ lệ phần trăm của các vật tư vẫn chưa lớn hơn 40 thì bắt buộc vòng lặp phải được thoát ra ngoài, bởi vì nếu không thì vòng lặp sẽ bị lặp vô tận không bao giờ thoát ra được.

{ 0 nhận xét }

Welcome to Zhu's Blog

Bài viết ngẫu nhiên


\
[close]

Fanpage

Số người Online

Trang thông tin điện tử, tin tức xã hội, tin công nghệ, trao đổi kiến thức
Copyright © 2013 Design by Johanes DJ
Devenlopment by Zhu
Email: izukroyal@gmail.com