- 帖子
- 57
- 主題
- 7
- 精華
- 3
- 積分
- 60
- 點名
- 0
- 作業系統
- WINDOWSXP
- 軟體版本
- 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2011-4-9
|
[分享] Visual Basic 新手教學 之運算子
本帖最後由 呆呆 於 2010-9-25 02:06 編輯
在程式語言中,運算子算是各相當常用到的,無論如何,不可能寫一輩子的 Hello World,因此一定會用到運算子
以下歸納了幾種運算子
- 算數運算子
- 連結運算子
- 比較運算子
- 邏輯運算子
- 位元運算子
算數運算子
- + 這個不用說了吧,就是加號,例如 3+5 = 8
- - 這個符號也是相當普遍,就是減號 例如 5-3 = 2 另外一層意義就是負號 例如-2
- * 這個符號就是數學上的乘號,例如 3*5 = 15
- / 這個符號是數學上的除號 例如 10/8 = 1.25
- \ 這個符號是整數除號,也就是二數相除時只求整數的商值 例如 20\3 = 6
- mod 這個符號是求餘數 例如 18 mod 7 其結果為4
- ^ 這個符號是指數運算符號 例如 3^4 就是 3*3*3*3=81
比較運算子
所謂比較運算子顧名思意就是二個值或物件互相比較,所以一般都會回傳 true 或 False
- = 比較二值是否相等 例如 MessageBox.Show((3 = 8).ToString()) 回傳 False
- < 和數學上的小於同義 例如 MessageBox.Show((3 < 8).ToString()) 回傳 True
- > 和數學上的大於同義 例如 MessageBox.Show((3 > 8).ToString()) 回傳 False
- >= 大於或等於 例如 MessageBox.Show((3 >= 8).ToString()) 回傳 False
- <= 小於或等於例如 MessageBox.Show((8 <= 8).ToString()) 回傳 True
- <> 不等於 例如 MessageBox.Show((3 <> 8).ToString()) 回傳 True
- Is 比較二物件是否相同為同一物件件,例如
- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim A As New Button
- Dim b As New Button
- MessageBox.Show((A Is b).ToString)
- End Sub
- End Class
複製代碼 這個答案是False , 表示 a 和b 是二個個自獨立的按鈕
但如果是- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim A As New Button
- Dim b As Button = A
- MessageBox.Show((A Is b).ToString)
- End Sub
- End Class
複製代碼 表示a和b是相同的的物件,所以回傳true,若以位址的關係來看,第一個程式a和b的位址不同,但第二個程式中a和b指向同一個位址
- TypeOf.......Is
一般而言這個用來查看是否某個物件符合某一型態,如果是的話就可以進行轉換,因為在Vb.net寫作時希望達到強型別的要求,這樣可以增加程式碼的安全性
例如- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- If TypeOf sender Is Button Then
- MessageBox.Show(DirectCast(sender, Button).Text)
- End If
- End Sub
- End Class
複製代碼 - Like Like 運算子一般用在字串的型式比較例如
MessageBox.Show("F" Like "[A-Z]") 回傳True 因為F為A-Z其中之一字元
當然我們可以活用從dos時代就留下來的萬用字元如以下也是回傳true
MessageBox.Show("Casting" Like "Ca?t*")
*代表的是一串字,而?代表的是一個字元
指定運算子 比較不同於數學上的等號 這裡的意思是 指定某一個值給某一變數
如 X= 1, 代表的意思是 將1指定給X,而不是X 等於1 因此會有 X = X+1 這樣的陳述 將 X 原本加1後再指定給X
連結運算子 VB中字串的連結可以有二個運算子使用,一個是利用+ ,另一個是 &
MessageBox.Show("abc" + "def")
MessageBox.Show("abc" & "def")
為等輸出
邏輯運算子
Not : 例如
Dim A As Boolean = False
MessageBox.Show(Not A).ToString()
則會顯示出 true , 也就是和原先值相反的意思
Xor
只有當 A 和 B都是false 或 是 都是 true時 才會是false
其餘都是true
And
當 A 和 B都是 true 時 才會是 true 其餘都是 False
Or
當A和B 任一個是true時就是true
AndAlso
和And的效果是一樣,但效率不同,原因在於andalso只要判定前面一個是false就不會去判斷下一個直接就回應false,然而 and 是會 A 和B 都判斷完成了,才會去回應 |
|