1 Các Toán Tử của AutoIT Mon Aug 22, 2011 5:05 pm
Trunks-Kun
Administrator
Các Toán Tử
Thứ tự ưu tiên của các Toán Tử
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR
- Hầu hết những toán tử ở trên chắc không đến nỗi khó hiểu lắm vì chúng khá quen thuộc rồi, chỉ có 3 cái cuối NOT, AND và OR là có vẽ lạ cho nên tớ sẽ giải thích chúng trước, nếu ai cần giải thích thêm về toán tử nào thì reply ở dưới để tớ sẽ Tut tiếp.
- NOT, AND và OR có liên quan mật thiết với kiễu dữ liệu True và False cho nên mọi người phải hiểu Kiểu Dữ Liệu này trước thì mới hiểu được 3 toán tử trên. Sau đây là chi tiết từng toán tử:
1.NOT - Có nghĩa là phủ định, ngược lại. Tức là nếu ta có True đi kèm với Not thì toán tử Not sẽ tồn tại False bên trong. Nếu bạn làm 1 phép toán gán cho 1 biến thì biến đó sẽ mang giá trị False. Ví dụ:
- Bạn chỉ cần nhớ Ngược Lại với True là False và Ngược Lại với False là True, tương tự với 1 và 0.
Bài viết được đăng trên autoit.72ls.net, mong đọc giả vào xem để ủng hộ Anh Em trong Forum viết tiếp.
2.AND - Có nghĩa là và, nói cho dễ hiểu hơn AND là toán tử Dung Hợp, nó sẽ kết hợp 2 giá trị lại với nhau theo công thức sau:
True AND True => True
True AND False => False
False AND False => False
1 AND 1 => True
1 AND 0 => False
0 AND 0 => False
- Nếu sử dụng với biến ta cũng có những kết quả tương tự:
- Bạn chỉ cần nhớ nếu bên Trái và bên Phải của AND đều là True hết thì kết quả của AND chắc chắn là True, nếu 1 trong 2 bên là False chắc chắn là False.
3.OR - Cái này cũng hoạt động theo kiểu Dung Hợp tương tự như AND, nhưng với nghĩa là hoặc, nó sẽ kết hợp 2 giá trị lại với nhau theo công thức sau:
True OR True => True
True OR False => True
False OR False => False
1 OR 1 => True
1 OR 0 => True
0 OR 0 => False
- Nếu sử dụng với biến ta cũng có những kết quả tương tự:
- Bạn chỉ cần nhớ nếu bên Trái hoặc bên Phải của OR là True thì kết quả của OR chắc chắn là True, OR chỉ False khi cả 2 bên là False.
- Những tưỡng chỉ có AND, OR và NOT là khó hiểu, nhưng một số bạn đã PM tớ nhờ giải thích thêm về các toán tử so sánh, nên giờ tớ viết tiếp về chúng.
- Cũng như các toán tử AND, OR và NOT các toán tử so sánh luôn trả về True hoặc False. Toán tử so sánh luôn luôn là toán tử 2 ngôi, tức là bên trái và bên phải của nó phải có 2 giá trị thì mới so sánh được, nếu không sẽ bị lỗi. Ví dụ như với so sánh bằng, khi ta muốn so sánh xem 2 số có bằng nhau không thì ta sẽ viết lệnh như sau.
- Với câu lệnh trên, nếu giá trị trong $a bằng giá trị trong $b thì $var sẽ có mang giá trị là True và ngược lại nếu $a khác $b thì $var sẽ mang giá trị False. Bên dưới là một số ví dụ minh họa cho toán tử so sánh bằng.
- Vậy làm sao để phân biệt được khi nào nó làm nhiệm vụ gán dữ liệu, khi nào nó làm toán tử so sánh? Cách đơn giản nhất là nhìn vào phía bên trái của nó, nếu bên trái của nó mà là 1 biến và nó là toán tử đầu tiên trong câu lệnh, lúc đó chắc chắn nó đang làm nhiệm vụ của 1 phép gán, các trường hợp còn lại nó làm toán tử so sánh.
- Nói về sự khác biệt của toán tử = (có vai trò là toán tử So Sánh) với toán tử so sánh ==. Thông thường 2 toán tử này hoàn toàn giống nhau, chúng chỉ khác nhau khi so sánh chuỗi. Khi dùng = tức là ta so sánh 2 chuỗi với nhau mà không phân biệt Hoa hay Thường, tức là "AutoIT" bằng với "autoit", nhưng với == thì có sự phân biệt.
nguồn autoit.72ls.net
Toán Tử | Mô Tả | Ví dụ |
= | Phép Gán | $x = 7 |
+= | Cộng dồn | $x = 5 $x += 2 ;($x sẽ bằng 7) |
-= | Trừ dần | $x = 5 $x -= 2 ;($x sẽ bằng 3) |
*= | Nhân dồn | $x = 5 $x *= 2 ;($x sẽ bằng 10) |
/= | Chia dần | $x = 5 $x /= 2 ;($x sẽ bằng 2.5) |
&= | Nối dần | $x = "năm" $x &= 2 ;($x sẽ bằng "năm2") |
+ | Phép Cộng | $x = $a + $b |
- | Phép Trừ | $x = 7 - 2 |
* | Phép Trừ | $x = $a * $b |
/ | Phép Trừ | $x = 7 / 2 |
& | Nối Chuỗi | $x = "72ls" & ".NET" ;$x sẽ bằng "72ls.NET" |
^ | Lũy thừa | $x = 2^3 |
== | So Sánh Bằng | $x = 2 == 7 ;$x sẽ bằng False |
<> | So Sánh Khác | $x = 2 <> 7 ;$x sẽ bằng True |
> | Lớn Hơn | $x = 2 > 7 ;$x sẽ bằng False |
>= | Lớn Hơn hoặc Bằng | $x = 2 >= 7 ;$x sẽ bằng False |
< | Nhỏ Hơn | $x = 2 < 7 ;$x sẽ bằng True |
<= | Nhỏ Hơn hoặc Bằng | $x = 2 <= 7 ;$x sẽ bằng True |
AND | Và | $x = True AND False ;$x sẽ bằng False |
OR | Hoặc | $x = True OR False ;$x sẽ bằng True |
NOT | Phủ Định | $x = NOT True ;$x sẽ bằng False |
Thứ tự ưu tiên của các Toán Tử
NOT
^
* /
+ -
&
< > <= >= = <> ==
AND OR
- Hầu hết những toán tử ở trên chắc không đến nỗi khó hiểu lắm vì chúng khá quen thuộc rồi, chỉ có 3 cái cuối NOT, AND và OR là có vẽ lạ cho nên tớ sẽ giải thích chúng trước, nếu ai cần giải thích thêm về toán tử nào thì reply ở dưới để tớ sẽ Tut tiếp.
- NOT, AND và OR có liên quan mật thiết với kiễu dữ liệu True và False cho nên mọi người phải hiểu Kiểu Dữ Liệu này trước thì mới hiểu được 3 toán tử trên. Sau đây là chi tiết từng toán tử:
1.NOT - Có nghĩa là phủ định, ngược lại. Tức là nếu ta có True đi kèm với Not thì toán tử Not sẽ tồn tại False bên trong. Nếu bạn làm 1 phép toán gán cho 1 biến thì biến đó sẽ mang giá trị False. Ví dụ:
- Code:
$var1 = Not True
;Lúc này $var1 sẽ bằng False
$var2 = Not $var1
;Lúc này $var2 sẽ bằng True, vì trong $var1 đã có False
;Tượng tự như vậy với 1 và 0
$var1 = Not 1 ;Lúc này $var1 sẽ bằng False (0)
$var2 = Not $var1 ;Lúc này $var2 sẽ bằng True (1)
;Mở rộng ra 1 tý
$var = True
$var = Not $var ;$var bằng False
$var = Not $var ;$var bằng True
$var = Not $var ;$var bằng False
$var = Not $var ;$var bằng True
$var = Not $var ;$var bằng False
$var = Not $var ;$var bằng True
$var = Not $var ;$var bằng False
$var = Not $var ;$var bằng True
;...
$var = Not True ;$var bằng False
$var = Not Not True ;$var bằng True
$var = Not Not Not True ;$var bằng False
$var = Not Not Not Not True ;$var bằng True
;...
- Bạn chỉ cần nhớ Ngược Lại với True là False và Ngược Lại với False là True, tương tự với 1 và 0.
Bài viết được đăng trên autoit.72ls.net, mong đọc giả vào xem để ủng hộ Anh Em trong Forum viết tiếp.
2.AND - Có nghĩa là và, nói cho dễ hiểu hơn AND là toán tử Dung Hợp, nó sẽ kết hợp 2 giá trị lại với nhau theo công thức sau:
True AND True => True
True AND False => False
False AND False => False
1 AND 1 => True
1 AND 0 => False
0 AND 0 => False
- Nếu sử dụng với biến ta cũng có những kết quả tương tự:
- Code:
$var1 = True
$var2 = True
$var = $var1 AND $var2 ;$var sẽ bằng True
$var = $var1 AND True ;$var sẽ bằng True
$var = $var1 AND False ;$var sẽ bằng False
$var = $var1 AND 1 ;$var sẽ bằng True
$var = $var1 AND 0 ;$var sẽ bằng False
- Bạn chỉ cần nhớ nếu bên Trái và bên Phải của AND đều là True hết thì kết quả của AND chắc chắn là True, nếu 1 trong 2 bên là False chắc chắn là False.
3.OR - Cái này cũng hoạt động theo kiểu Dung Hợp tương tự như AND, nhưng với nghĩa là hoặc, nó sẽ kết hợp 2 giá trị lại với nhau theo công thức sau:
True OR True => True
True OR False => True
False OR False => False
1 OR 1 => True
1 OR 0 => True
0 OR 0 => False
- Nếu sử dụng với biến ta cũng có những kết quả tương tự:
- Code:
$var1 = True
$var2 = True
$var = $var1 OR $var2 ;$var sẽ bằng True
$var = $var1 OR True ;$var sẽ bằng True
$var = $var1 OR False ;$var sẽ bằng True
$var = $var1 OR 1 ;$var sẽ bằng True
$var = $var1 OR 0 ;$var sẽ bằng True
$var = False OR False ;$var sẽ bằng False
$var = False OR 0 ;$var sẽ bằng False
$var = 0 OR 0 ;$var sẽ bằng False
- Bạn chỉ cần nhớ nếu bên Trái hoặc bên Phải của OR là True thì kết quả của OR chắc chắn là True, OR chỉ False khi cả 2 bên là False.
- Những tưỡng chỉ có AND, OR và NOT là khó hiểu, nhưng một số bạn đã PM tớ nhờ giải thích thêm về các toán tử so sánh, nên giờ tớ viết tiếp về chúng.
Toán Tử | Mô Tả | Ví dụ |
== | So Sánh Bằng | $x = 2 == 7 ;$x sẽ bằng False |
<> | So Sánh Khác | $x = 2 <> 7 ;$x sẽ bằng True |
> | Lớn Hơn | $x = 2 > 7 ;$x sẽ bằng False |
>= | Lớn Hơn hoặc Bằng | $x = 2 >= 7 ;$x sẽ bằng False |
< | Nhỏ Hơn | $x = 2 < 7 ;$x sẽ bằng True |
<= | Nhỏ Hơn hoặc Bằng | $x = 2 <= 7 ;$x sẽ bằng True |
- Cũng như các toán tử AND, OR và NOT các toán tử so sánh luôn trả về True hoặc False. Toán tử so sánh luôn luôn là toán tử 2 ngôi, tức là bên trái và bên phải của nó phải có 2 giá trị thì mới so sánh được, nếu không sẽ bị lỗi. Ví dụ như với so sánh bằng, khi ta muốn so sánh xem 2 số có bằng nhau không thì ta sẽ viết lệnh như sau.
- Code:
$var = $a == $b
- Với câu lệnh trên, nếu giá trị trong $a bằng giá trị trong $b thì $var sẽ có mang giá trị là True và ngược lại nếu $a khác $b thì $var sẽ mang giá trị False. Bên dưới là một số ví dụ minh họa cho toán tử so sánh bằng.
- Code:
$a = 2
$b = 7
$var = $a == $b
;$var sẽ mang giá trị False
$a = 7
$b = 7
$var = $a == $b
;$var sẽ mang giá trị True
$a = 2 + 7 ;$a = 9
$b = 1 + 8 ;$b = 9
$var = $a == $b
;$var sẽ mang giá trị True
$a = "abc"
$b = "abcd"
$var = $a == $b
;$var sẽ mang giá trị False
- Vậy làm sao để phân biệt được khi nào nó làm nhiệm vụ gán dữ liệu, khi nào nó làm toán tử so sánh? Cách đơn giản nhất là nhìn vào phía bên trái của nó, nếu bên trái của nó mà là 1 biến và nó là toán tử đầu tiên trong câu lệnh, lúc đó chắc chắn nó đang làm nhiệm vụ của 1 phép gán, các trường hợp còn lại nó làm toán tử so sánh.
- Code:
Dim $var
$text = "AutoIT" ;= phép gán
$var += $text = "autoit" ;= là toán tử so sánh
"AutoIT" = 'autoit' ;Lỗi
- Nói về sự khác biệt của toán tử = (có vai trò là toán tử So Sánh) với toán tử so sánh ==. Thông thường 2 toán tử này hoàn toàn giống nhau, chúng chỉ khác nhau khi so sánh chuỗi. Khi dùng = tức là ta so sánh 2 chuỗi với nhau mà không phân biệt Hoa hay Thường, tức là "AutoIT" bằng với "autoit", nhưng với == thì có sự phân biệt.
- Code:
$var = "AutoIT" = "autoit" ;$var mang giá trị True
$var = "AutoIT" == "autoit" ;$var mang giá trị False
nguồn autoit.72ls.net