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

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

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 (127.94 KB, 6 trang )

@AutoItPID
ID của đoạn chương trình script đang chạy trong bộ nhớ
@AutoItVersion
Số phiên bản của AutoIt như 3.0.102.0
@AutoItX64
Trả về 1 nếu đang chạy dưới AutoIT phiên bản x64
@InetGetActive
Là 1 nếu một InetGet download đã được kích hoạt, ngược
lại là 0.
@InetGetBytesRead

Suốt quá trình InetGet download, macro này cho số byte đã
đọc. Cho -1 nếu có một lỗi download.


@CR
Phím xuống dòng, Chr(13); đôi lúc hữu dụng cho các ngắt
dòng
@LF
Tín hiệu xuống dòng, Chr(10); đặc trưng cho việc ngắt
dòng
@CRLF
= @CR & @LF ; đôi lúc hữu dụng cho các ngắt dòng
@TAB
Phím Tab, Chr(9)

CÂU LỆNH ĐIỀU KIỆN IF
Câu lệnh if là một câu lệnh điều kiện phổ biến nhất trong các ngôn ngữ lập trình
bậc cao. Nó được dùng để kiểm tra một điều kiện nào đó, nếu dúng thì thực hiện
công việc tương ứng, ngược lại thì làm một việc khác. Nếu bạn đã học qua Excel
thì chắc chắn phải biết hàm If bên đó. Với AutoIt, câu lệnh điều kiện if được thành


lập thành một khối. Để đơn giản, ta chia thành các phần nhỏ để dễ trình bày.
Dạng chung của If :
If <điều kiện> Then
<các câu lệnh>

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

EndIf
Như trình bày ở trên ta thấy rằng, một khối lệnh If phải được bắt đầu với If Then
và kết thúc với EndIf.
<điều kiện> là một biểu thức so sánh (có sử dụng các toán tử so sánh, logic như :
<, >, <> , =, And, Or, Not) hoặc một biểu thức thường có trả về giá trị. Nếu điều
kiện trả về True thì <các câu lệnh> sau Then được thực hiện. Nếu ngược lại thì
<các câu lệnh> sau Else được thực hiện, không bao giờ xảy ra hai trường hợp cùng
một lúc. Cũng xin nhắc lại, nếu <điều kiện> trả về một giá khác 0 thì có nghĩa
True, bằng 0 là False.
<các câu lệnh> có thể là một hay nhiều dòng lệnh, hoặc cũng có thể là lệnh rỗng.
Hoặc cũng có thể là một khối điều kiện If khác.
Mệnh đề Else thì tự chọn, có thể có hoặc không. Nếu Else không tồn tại thì khi
<điều kiện> là False thì chương trình sẽ thực hiện tiếp các lệnh nằm sau EndIf.
Ví dụ đơn giản sau xét xem số chỉ định là chẵn hay lẻ.
$n = 101
If Mod($n, 2)=0 Then
MsgBox(0, "Ket qua", $n & " là số chẵn")
Else
MsgBox(0, "Ket qua", $n & " là số lẻ")
EndIf
Hàm Mod có chức năng tìm số dư của phép chia giữa $n và 2. Cú pháp chung là
Mod( a, b). Trong đó a là số bị chia và b là số chia.

Các If lồng nhau :
If được lồng nhau là một If nằm bên trong một khối If EndIf khác. Các If lồng
nhau được dùng rất phổ biến trong lập trình, thông thường là trong trường hợp
thẩm định một <điều kiện> với nhiều giả thiết xảy ra khác nhau. Trong các If lồng
nhau thì lệnh Else luôn có mối quan hệ liên kết với khối If (chưa có EndIf ) nằm
gần nó nhất.
Ví dụ sau là một bổ sung của ví dụ phía trên, xét xem thêm điều kiện để biết số đó
có phải là số có 3 chữ số hay không.
$n = 1010
If Mod($n, 2)=0 Then
If 100<=$n And $n<=999 Then
MsgBox(0, "Ket qua", $n & " là số chẵn có 3 chữ số")
Else
MsgBox(0, "Ket qua", $n & " là số chẵn không phải 3 chữ số")
EndIf
Else
If 100<=$n And $n<=999 Then
MsgBox(0, "Ket qua", $n & " là số lẻ có 3 chữ số")
Else
MsgBox(0, "Ket qua", $n & " là số lẻ không phải 3 chữ số")
EndIf
EndIf
Bước thang If ElseIf Else EndIf
Với hai phần vừa được trình bày ở trên thì có lẻ bạn đã hiểu được phần nào khối
lệnh If và có thể sử dụng nó để giải quyết nhiều bài toán có yêu cầu điều kiện.
Trong phần các khối If lồng nhau, chỗ lồi lõm là một kỹ thuật đúng. Tuy nhiên, khi
có quá nhiều If được lồng vào nhau thì đoạn mã của bạn sẽ bị lõm vào rất sâu. Vì
lý do này mà bước thang If ElseIf được dùng. ElseIf là một từ khóa của AutoIt,
báo hiệu việc thẩm định điều kiện If tiếp theo. Cú pháp :
If <điều kiện 1> Then

<các câu lệnh 1>

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

ElseIf <điều kiện n> Then
<các câu lệnh n>

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

EndIf
Xin nói luôn với các bạn một điều, cú pháp này mới chính là cú pháp tổng quát
nhất của khối lệnh If. Hai phần : “Dạng chung của If” và “Các if lồng nhau” thực
chất được tách từ đây mà ra. Cho nên từ đây trở đi, khi sử dụng If bạn chỉ cần quan
tâm đến phần này. Đến đây cũng xin giải thích lại để bạn hiểu và ghi nhớ.
Các <điều kiện> được thẩm định từ trên xuống. Nếu <điều kiện 1> là True, thì
<các câu lệnh 1> được thi hành. Ngược lại thì kiểm tra <điều kiện 2> , nếu đúng
thì thi hành <các câu lệnh 2>. Việc ước lượng được xét dần đến <điều kiện n>.
Nếu sau tất cả các lần thẩm định, không một điều kiện nào thỏa mãn và Else có tồn
tại, thì các lệnh sau Else được thi hành. Ví dụ sau minh họa rõ việc dùng khối If
tổng quát .
Dim $var = '-5'
If $var > 0 Then
MsgBox(4096,"", "Value is positive.")
ElseIf $var < 0 Then
MsgBox(4096,"", "Value is negative.")
Else
If StringIsXDigit ($var) Then
MsgBox(4096,"", "Value might be hexadecimal!")

Else
MsgBox(4096,"", "Value is either a string or is zero.")
EndIf
EndIf
Chú ý
 Trong trường hợp câu lệnh If bạn sử dụng, chỉ có một lệnh sau Then và
không có phần Else thì có thể viết gọn như sau :
If <điều kiện> Then <câu lệnh>
Ví dụ :
$v='05'
if StringIsDigit($v) Then MsgBox(0,'msg','It is a number')
; các lệnh không thuộc If có thể viết tiếp ở đây
 Trong các câu lệnh điều kiện (như If) thì việc dùng dấu ngoặc đơn ( ) là
không thể thiếu nếu như bạn muốn thẩm định các điều kiện một cách chính
xác, vài bài toán yêu cầu được kiểm tra với nhiều điều kiện lồng vào nhau,
một kết quả không mong muốn có thể được đưa ra nếu như bạn không gom
nhóm các điều kiện hoặc gom nhóm không đúng. Bạn xem ví dụ sau cho
thấy cách thức xét điều kiện của khối If thứ nhất và khối If thứ hai là hoàn
toàn khác nhau :

×