Tải bản đầy đủ (.pdf) (6 trang)

GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 8 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (122.12 KB, 6 trang )

Dim $a=0, $b =2, $c=0
if ($a>0 And $b>0) Or $c=0 Then MsgBox(0,"msg", " Thông
điệp 1")
if $a>0 And ($b>0 Or $c=0) Then MsgBox(0,"msg", " Thông
điệp 2")
CÂU LỆNH ĐIỀU KIỆN SELECT
Khối lệnh Select thực chất là một dạng khác của If lồng nhau, được dùng như một
dạng trình bày có hiệu quả hơn trong việc thẩm định nhiều điều kiện liên tiếp.
Dạng tổng quát của Select như sau :
Select
Case <điều kiện 1>
<các câu lệnh>

Case <điều kiện 2>
<các câu lệnh>

Case Else
<các câu lệnh>

EndSelect
Giải thích
<điều kiện> : cũng tương tự như khối lệnh If, cũng sử dụng các toán tử so sánh
và logic.
<các câu lệnh> : có thể là bất cứ lệnh gì, kể cả các khối Select , Switch hay If
khác đều được.
Case Else : có thể có hoặc không.
Hình thức xét điều kiện cũng bắt đầu từ trên xuống. Kiểm tra <điều kiện 1> nếu
thỏa thì thực hiện <các câu lệnh> sau nó. Ngược lại, thì xét <điều kiện 2>,
<điều kiện 3>, cho đến <điều kiện thứ n>. Nếu không có <điều kiện> nào thỏa
thì <các câu lệnh> sau Case Else sẽ được thực thi, nếu như Case Else được thiết
lập. Trong trường hợp có nhiều <điều kiện> đúng, thì chỉ <điều kiện> đúng đầu


tiên được tìm thấy mới được thi hành.
Ví dụ 1 :
$s = 3
$n = 5
Select
case IsString($s)
MsgBox(0,"msg", "$s là chuỗi")
Case $n<>0
MsgBox(0,"msg", "$n là số khác 0")
Case Else
MsgBox(0,"msg", "$s không là chuỗi. $n không là số")
EndSelect
Hàm IsString xét xem một giá trị nào đó có phải là chuỗi hay không. Nếu đúng trả
về 1, ngược lại trả về 0.
Ví dụ 2 :
; đoạn mã này cho biết hệ điều hành đang sử dụng
$ver = @OSVersion
Select
Case $ver = "WIN_2008"
MsgBox(0,"Version", "Your OS is Win 2008")
case $ver = "WIN_VISTA"
MsgBox(0,"Version", "Your OS is Win Vista")
Case $ver = "WIN_2003"
MsgBox(0,"Version", "Your OS is Win 2003")
Case $ver = "WIN_XP"
MsgBox(0,"Version", "Your OS is Win XP")
Case $ver ="WIN_2000"
MsgBox(0,"Version", "Your OS is Win 2000")
case Else
MsgBox(0,"Version", "Your OS is Win 9x")

EndSelect
CÂU LỆNH SWITCH
Không giống như khối lệnh If hay Select thực hiện thẩm định nhiều điều kiện của
bài toán. Trong khối lệnh Switch, ứng với một biến cho phép bạn lựa chọn nhiều
giá trị hoặc là miền giá trị để làm điều kiện xử lý. Vì vậy mà Switch còn được gọi
là lệnh lựa chọn đa nhánh. Thực chất việc xét từng giá trị cho một biến vẫn có thể
làm được với hai khối lệnh If hay Select , nhưng ở Switch cách thức làm việc đã
được đơn giản để có thể thực hiện nhanh chóng và dễ hiểu hơn.
Cú pháp tổng quát :
Switch <biến hoặc biểu thức>
Case <value1> To <Value2> , < value3> To <value4> , , <value
n-1> To <value n>
<các câu lệnh>

Case <value1> To <Value2> , < value3> To <value4> , , <value
n-1> To <value n>
<các câu lệnh>

Case Else
<các câu lệnh>

EndSwitch
Giải thích
Giá trị của <biến hoặc biểu thức> sẽ được lấy và kiểm tra lần lượt theo thứ tự
các Case. Khi một giá trị trong Case phù hợp giá trị của <biến hoặc biểu thức>
thì các dãy lệnh liên hợp với Case đó được thi hành. Các Case lần lượt được
duyệt cho đến khi gặp một Case thỏa điều kiện hoặc từ khóa EndSwitch cùng
cấp. Nếu Case Else được chỉ định, thì khi tất cả các Case đều không thỏa, khối
lệnh liên kết với Case Else sẽ được thực thi.
Chú ý

 <value1> To <value2> hoặc <value n-1> To <value n> là một miền giá
trị. Nếu bạn không muốn chỉ định các miền giá trị cho Case thì có thể chỉ
định những giá trị cụ thể, mỗi giá trị cách nhau bởi dấu phẩy. Từ khóa To và
các phần sau nó thì tùy, có thể có hoặc không.
 <các câu lệnh> có thể là bất cứ một lệnh gì, thậm chí là nhiều khối
Switch lồng nhau.
Ví dụ :
Đoạn mã sau sẽ lấy giờ của hệ thống và suy ra thời điểm hiện tại trong ngày
Switch @HOUR
Case 6 To 11
$msg = "Good Morning"
Case 12 To 17
$msg = "Good Afternoon"
Case 18 To 21
$msg = "Good Evening"
Case Else
$msg = "What are you doing now ?"
EndSwitch
MsgBox(0, Default, $msg)
CONTINUECASE
Theo như mặc định, thì trong khối lệnh Switch và Select sẽ dừng việc kiểm tra
điều kiện và kết thúc nếu gặp được một Case trả về giá trị True. Tuy nhiên trong
một vài tình huống, bạn lại không muốn kết thúc khối lệnh Select hay Switch khi
gặp một trường hợp đúng, bạn muốn nó vẫn thực hiện kiểm tra các Case phía sau
để làm một công việc nào đấy. Thông thường, đối với một Case thỏa điều kiện và
đang thi hành các lệnh liên kết với nó, thì việc thi hành chỉ dừng lại khi gặp một
lệnh Case tiếp theo hoặc lệnh EndSwitch hay EndSelect.
Thì ở đây, AutoIt hỗ trợ cho bạn từ khóa ContinueCase để dừng việc thực hiện một
Case hiện tại và duyệt đến các lệnh nằm trong Case tiếp theo.
Cú pháp : ContinueCase

Ví dụ sau sử dụng hàm InputBox và cờ lỗi @error của nó để minh họa việc dùng
ContinueCase.
$msg = ""
$w = InputBox(Default, "Please enter a word.", "", " M", Default,
Default, Default, Default, 5)
Switch @error
Case 2
$msg = "Timeout "
ContinueCase
Case 1 ; Continuing previous case
$msg &= "Cancellation"
Case 0
Switch $w

×