返回列表 上一主題 發帖

[分享] Visual Basic 新手教學 之運算子

[分享] 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  比較二物件是否相同為同一物件件,例如
    1. Public Class Form1

    2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3.         Dim A As New Button
    4.         Dim b As New Button
    5.         MessageBox.Show((A Is b).ToString)
    6.     End Sub
    7. End Class
    複製代碼
    這個答案是False , 表示 a 和b 是二個個自獨立的按鈕
    但如果是
    1. Public Class Form1
    2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3.         Dim A As New Button
    4.         Dim b As Button = A
    5.         MessageBox.Show((A Is b).ToString)
    6.     End Sub
    7. End Class
    複製代碼
    表示a和b是相同的的物件,所以回傳true,若以位址的關係來看,第一個程式a和b的位址不同,但第二個程式中a和b指向同一個位址

  • TypeOf.......Is
    一般而言這個用來查看是否某個物件符合某一型態,如果是的話就可以進行轉換,因為在Vb.net寫作時希望達到強型別的要求,這樣可以增加程式碼的安全性
    例如
    1. Public Class Form1
    2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    3.         If TypeOf sender Is Button Then

    4.             MessageBox.Show(DirectCast(sender, Button).Text)

    5.         End If
    6.     End Sub
    7. 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 都判斷完成了,才會去回應

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題