Case "a", "e", "i", "o", "u" $msg = "Vowel" Case "QP" $msg = "Mathematics" Case "Q" to "QZ" $msg = "Science" Case Else $msg = "Others" EndSwitch Case Else $msg = "Something went horribly wrong." EndSwitch MsgBox(0, Default, $msg) Hàm InputBox sẽ hiện ra trong vòng 5 giây để chờ bạn gõ một ký tự. Sau 5 giây, nếu bạn không thao tác gì, hộp thoại sẽ tự đóng và hiện thông báo “Timeout Cancellation”. Nếu bạn nhấn nút Cancel thì hiện thông báo “Cancellation”. Nếu bạn gõ một từ hay ký tự và nhấn OK thì các khối lệnh bắt đầu từ Case 0 sẽ thực thi để hiện thông báo tương ứng với từ bạn vừa gõ. Cờ lỗi @error cho biết trạng thái tác động của người dùng đối với hàm InputBox. Bạn xem cú pháp của hàm InputBox trong file Help hoặc trong mục Hàm của ebook này để hiểu rõ thêm. VÒNG LẶP FOR Trong AutoIt và tất cả các ngôn ngữ lập trình hiện đại khác, các lệnh lặp (cũng còn được gọi là vòng lặp) cho phép thực hiện lặp đi lặp lại cho đến khi một điều kiện nào đó xảy ra. Tùy theo ngôn ngữ và tùy loại vòng lặp mà cách diễn đạt điều kiện sẽ khác nhau. Thông thường vòng lặp For là vòng lặp cơ bản, cho phép thực hiện lặp lại với số lần định trước. AutoIt hỗ trợ vòng lặp For với dạng tổng quát sau : For <var> = <start_value> To <stop_value> Step <step_value> <các câu lệnh> Next Giải thích <var> : biến dùng để thực hiện việc đếm <start_value> : giá trị bắt đầu cho biến đếm <stop_value > : giá trị cuối cùng cho biến đếm <step_value> : giá trị cộng vào cho biến đếm sau mỗi lần lặp. Mặc định là 1. <các câu lệnh> : công việc cần xử lý. Vẫn có thể là For hay những vòng lặp khác đều được. Vòng lặp For được bắt đầu bởi từ khóa For và kết thúc bởi từ khóa Next. Đầu tiên, <start_value> sẽ được gán vào biến đếm <var> , sau đó so sánh với <stop_value>. Nếu <var> nhỏ hơn hoặc bằng <stop_value> thì thực hiện <các câu lệnh> , sau đó biến đếm <var> sẽ được tăng lên <step_value> đơn vị. Tiếp tục so sánh với <stop_value> , thực hiện <các câu lệnh> rồi sau đó tăng biến đếm lên <step_value> . Quá trình lặp lại cho đến khi biến đếm <var> lớn hơn <stop_value>, vòng lặp kết thúc. Miêu tả cụ thể đối với vòng lặp For như trình bày ở trên xem ra có vẻ dài dòng. Bạn chỉ cần hiểu đơn giản là, vòng lặp For sẽ cho biến đếm <var> chạy từ <start_value> đến <stop_value>, mỗi lần lặp thì cộng <step_value> vào <var>. Chú ý Phần Step <step_value> có thể có hoặc không. Nếu không có, thì giá trị mặc định cho <step_value> sẽ bằng 1. Trường hợp <step_value> là một số âm và <start_value> lớn hơn <stop_value> thì ta có một vòng lặp đếm ngược. Nếu như <stop_value> và <step_value> là các biến, thì giá trị của các biến này chỉ được đọc một lần ở lần lặp đầu tiên. Ở các lần lặp sau, cho dù bạn thay đổi giá trị cho <stop_value> hay <step_value> thì chu kỳ lặp vẫn không thay đổi. Bên trong vòng lặp, nếu bạn sử dụng một biến không có khai báo, thì mặc định nó sẽ được tạo với phạm vi cục bộ (Local). Vòng lặp For sẽ không thực hiện bất kỳ lần lặp nào nếu như : start_value >stop_value và step_value >= 0 Hoặc start_value < stop_value và step_value là một số âm. Ví dụ Đoạn mã sau được dùng để in các con số từ 1 đến 100 lên màn hình console của sciTe. For $i=1 to 100 ConsoleWrite($i & " ") Next MsgBox(0, "Thong bao", " Vòng lặp kết thúc ") Đoạn mã sau thực hiện việc đếm ngược và chỉ in các con số chẵn từ 100 về 0 For $i=100 to 0 step -2 ConsoleWrite($i & " ") Next MsgBox(0, "Thong bao", " Vòng lặp kết thúc ") VÒNG LẶP WHILE WEND Nếu như vòng lặp For thực hiện việc lặp với một biến chạy thì vòng lặp While thực hiện việc lặp bằng việc kiểm tra điều kiện. Cú pháp chung : While <điều kiện> <các câu lệnh> WEnd Giải thích <điều kiện> có thể là một một biểu thức điều kiện và True là giá trị khác 0 <các câu lệnh > có thể là rỗng, lệnh đơn, khối lệnh hoặc là các vòng lặp khác. Trước khi các lệnh bên trong vòng lặp được thực thi, thì <điều kiện> được kiểm tra. Nếu trả về giá trị True, thì <các câu lệnh> được duyệt và thi hành cho đến khi gặp WEnd. Khi đó vòng lặp quay lại thẩm định <điều kiện>. Quá trình lặp kết thúc khi <điều kiện> trả về False (tức không còn đúng nữa). Chú ý Số lần thực hiện của vòng lặp sẽ là 0, nếu như ngay bước kiểm tra <điều kiện> lần đầu tiên, <điều kiện> cho một giá trị False. Muốn tạo nên một vòng lặp vô tận, bạn chỉ cần thay thế <điều kiện> bằng một giá trị khác 0. Ví dụ Đoạn mã này sẽ hiện 5 lần thông báo cho biết giá trị của biến $i $i = 0 While $i <= 10 MsgBox(0, "Value of $i is:", $i) $i = $i + 1 WEnd MsgBox(0, "Thong bao", "While loop stoped. Script is exiting") VÒNG LẶP DO UNTIL Tương tự như While WEnd, khối lệnh Do Until cũng thực hiện việc lặp dựa trên việc kiểm tra biểu thức điều kiện. Cú pháp : Do <các câu lệnh> Until <điều kiện> Giải thích Vòng lặp Do Until thực hiện việc lặp lại các lệnh bên trong nó khi <điều kiện> trả về giá trị False. Có nghĩa là vòng lặp sẽ kết thúc nếu như <điều kiện> là đúng (True). Chú ý Không giống như For và While, cả hai vòng lặp này đều thực hiện việc kiểm tra điều kiện ở phần đầu của vòng lặp. Vòng lặp Do Until thực hiện việc kiểm tra điều kiện sau khi <các câu lệnh> được thi hành. Điều này có nghĩa là Do Until luôn thực hiện việc lặp ít nhất một lần. Ví dụ Đoạn chương trình sau tính giá trị trung bình một dãy số (không biết trước có bao nhiêu số) do người dùng nhập vào. Quá trình nhập số kết thúc khi người dùng nhập vào số 0. Biến $sum sẽ cộng dồn các giá trị được nhập vào, $count sẽ đếm xem đã qua bao nhiêu lần nhập số (tương ứng với số lần lặp lại). Global $n, $count=0, $sum=0 Do $n = InputBox("Get Data", "Please enter a number." &@crlf & "If number is zero, stop entering data") $sum += $n $count += 1 Until $n=0 $count -= 1 ; bỏ qua lần nhập số 0 MsgBox(0,"Result", "Average of sum : " & $sum/$count) . InputBox trong file Help hoặc trong mục Hàm của ebook này để hiểu rõ thêm. VÒNG LẶP FOR Trong AutoIt và tất cả các ngôn ngữ lập trình hiện đại khác, các lệnh lặp (cũng còn được gọi là vòng. Thông thường vòng lặp For là vòng lặp cơ bản, cho phép thực hiện lặp lại với số lần định trước. AutoIt hỗ trợ vòng lặp For với dạng tổng quát sau : For <var> = <start_value> To <stop_value>. hơn <stop_value>, vòng lặp kết thúc. Miêu tả cụ thể đối với vòng lặp For như trình bày ở trên xem ra có vẻ dài dòng. Bạn chỉ cần hiểu đơn giản là, vòng lặp For sẽ cho biến đếm <var>