第2章 資料的運算與輸出
2-1 資料型別與宣告 2-2 輸入與輸出
2-3 運算子
一、資料型別
資料型別
其他類
物件 Object 日期/時間
Date 布林 Boolean
文字
字串 String
字元 Char
數值
十進位數
Decimal 短整數
Short
長整數 Long 單精度
Single 整數 Integer 正位元
Byte 位元
SByte 正短整數
UShort 正整數 UInteger 正長整數
ULong 倍精度 Double
二、變數與常數的宣告-1
• 變數:內容不固定,其值會隨著程式的執行而改變
•
變數的內涵
Char(字元) Integer(整數)
變數資料型別
變數內容
變數名稱 變數儲存位址 變數儲存空間
★假設每一格代表1個byte的電腦記憶體
2 bytes 4 bytes
二、變數與常數的宣告-2
• 常數:內容固定不變,其值不會隨著程式的執行而改變
•
使用者自訂的常數:由使用者自行定義,例如用來存放圓周 率(3.14159)的pi
•
Visual Basic內建常數:由VB所提供,例如ControlChars.Tab表
示定位字元、ControlChars.CrLf表示換行
二、變數與常數的宣告-3
• 命名規則
•
不能使用保留字
•
只能使用英文字母、中文字、數字及底線(_)
•
名稱不能以數字開頭、或以型別字元(如%、$)結尾
•
長度必須在1023個字元以內
•
英文大小寫視為相同
二、變數與常數的宣告-4
• 常數的宣告
•
例:將 PI宣告為單精度型別變數 Const PI As Single = 3.14
Const PI! = 3.14
Const 常數名稱 As 資料型別 = 常數內容
Const 常數名稱型別字元 = 常數內容
二、變數與常數的宣告-5
• 變數的宣告
•
例:將 r 宣告為單精度型別變數 Dim r As Single
Dim r!
Dim 變數名稱 As 資料型別 [= 初始值]
Dim 變數名稱型別字元 [= 初始值]
二、變數與常數的宣告-6
• 變數的宣告
•
可用逗號(,)區隔多個具有相同資料型別的變數名稱,再加 上指定資料型別的敘述
例:Dim chi, math, eng As Short
•
未指定資料型別,預設為Object
•
變數初始值
資料型別 初始值
數值類(如Integer、Single) 0
字串(String)、物件(Object) 空值(null)
布林(Boolean) False
二、變數與常數的宣告-7
資料型別 型別字元 佔用空間
正位元Byte - 1 bytes
位元SByte - 1 bytes
短整數Short - 2 bytes
正短整數UShort - 2 bytes
整數Integer % 4 bytes
正整數UInteger - 4 bytes
長整數Long & 8 bytes
正長整數ULong - 8 bytes
★ Visual Basic是使用Unicode編碼方法來儲存及處理字串變數,每個英文字 母、中文字、特殊符號等都佔用2 bytes
二、變數與常數的宣告-8
資料型別 型別字元 佔用空間
單精度Single ! 4 bytes
倍精度Double # 8 bytes
十進位數Decimal @ 16 bytes
字串String $ 視字串長度而定,每個字元佔2 bytes
字元Char - 2 bytes
布林Boolean - 2 bytes
日期Date - 8 bytes
物件Object - 4 bytes + 變數所儲存資料型別佔用空間
三、輸入與輸出-1
• InputBox()函數
• 顯示一個供使用者輸入資料
的輸入交談窗,並將使用者
所輸入的資料以字串資料型
別傳回給指定的變數
三、輸入與輸出-2
•
語法與舉例:
UserID = InputBox("請輸入您的大名")
變數 = InputBox("訊息文字"[, "標題"][, "預設值"])
變數 訊息文字
此處輸入的資料會回傳給變數
三、輸入與輸出-3
• MsgBox()函數
• 用來顯示一個程式執行狀態的
訊息交談窗,並將使用者所按
下的回覆鈕之代表值,以整數
資料型別傳回給指定的變數
三、輸入與輸出-4
•
語法與舉例:
MsgBox("歡迎光臨本系統", , "系統提示")
[ 變數 =] MsgBox("訊息文字"[, 訊息圖示 + 回 覆鈕 + 預設按鈕][, "標題"])
標題 訊息文字
三、輸入與輸出-5
•
訊息圖示設定值
訊息圖示 VB常數 代表值
MsgBoxStyle.Critical 16
MsgBoxStyle.Question 32
MsgBoxStyle.Exclamation 48
MsgBoxStyle.Information 64
三、輸入與輸出-6
•
回覆鈕設定值
回覆鈕 VB常數 代表值
MsgBoxStyle.OkOnly 0
、 MsgBoxStyle.OkCancel 1
、 、 MsgBoxStyle.AbortRetryIgnore 2
、 、 MsgBoxStyle.YesNoCancel 3
、
MsgBoxStyle.YesNo 4
、 MsgBoxStyle.RetryCancel 5
三、輸入與輸出-7
•
預設按鈕設定值
預設按鈕 代表值 代表值
第1個 MsgBoxStyle.DefaultButton1(預設值) 0
第2個 MsgBoxStyle.DefaultButton2 256
第3個 MsgBoxStyle.DefaultButton3 512
三、輸入與輸出-8
•
例:當使用者按下是鈕,結束程式的執行
re = MsgBox("要離開嗎?", MsgBoxStyle.YesNo, "登出") If re = 6 Then End
按是鈕即結束程式
三、輸入與輸出-9
•
傳回值的種類與說明
傳回值 代表
1 按下確定鈕
2 按下取消鈕
3 按下中止鈕
4 按下重試鈕
5 按下略過鈕
6 按下是鈕
7 按下否鈕
三、輸入與輸出-10
• MessageBox.Show()方法
•
功能與MsgBox()函數相同,僅語法略有差異
•
回覆鈕、訊息圖示、預設按鈕是以逗號(,)連接
•
只能以VB常數來設定
•
若省略回覆鈕,亦須省略訊息圖示、預設按鈕;若省略訊息
圖示,亦須省略預設按鈕
三、輸入與輸出-11
•
語法與舉例:
MessageBox.Show("確定刪除嗎?", "警告", MessageBoxButtons.YesNo,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button2)
[變數 =] MessageBox.Show ("訊息文字" [, "標題"]
[, 回覆鈕 , 訊息圖示 , 預設按鈕])
1. 訊息文字 2. 標題
3. 回覆鈕
4. 訊息圖示
5. 預設按鈕
5 4
3
2
1
三、輸入與輸出-12
• Debug.Print()方法
•
用來將資料顯示在即時運算視窗中
•
語法與舉例:
Debug.Print(1+2)
Debug.Print(資料)
三、輸入與輸出-13
• Print方法
•
Visual Basic 6.0(含)以前的版本所使用
•
用來將訊息顯示在表單上
例:Print "hello" (在表單上顯示 "hello")
•
Visual Basic 2010中已不提供此方法
四、運算子-1
運算子
+(同類串接)
&(不同類串接)
串接運算子 邏輯運算子
Not (非) And (且) AndAlso Or (或)
OrElse Xor (互斥)
算術運算子
()(括號)
^(指數)
Mod(餘除)
-(負數)
*(乘法)
/(除法)
\(整除)
+(加法)
-(減法)
關係運算子
=(等於)
>(大於)
<(小於)
>=(大於等於)
<=(小於等於)
<>(不等於)
Like(字串比對)
四、運算子-2
• 指定運算子:可簡化輸入算術運算式
指定運算子 運算類型 範例 範例說明
+= 相加 a += 1 等於a = a + 1
-= 相減 b -= 2 等於b = b - 2
*= 相乘 c *= 3 等於c = c * 3
/= 相除(除法) d /= 3 等於d = d / 3
\= 相除(整數除法) e \= 4 等於e = e \ 4
^= 次方運算 f ^= 2 等於f = f ^ 2
&= g &= "h" 等於 g = g & "h"
四、運算子-3
• Like字串比較運算子
•
完全比對兩個字串資料的內容是否相同
• 例:? "VB" Like "vb" → 結果為False
• 例:? "ABC" Like "ABC" → 結果為True
四、運算子-4
• Like字串比較運算子
•
模糊比對兩個字串資料的內容
•
可利用萬用字元(? 、*、#)、中括號、連字號、逗號、驚嘆 號來組成字串樣式及字元清單
• 例:? "ABC" Like "?BC" → 結果為True
• 例:? "ABC" Like "*C" → 結果為True
• 例:? "S987" Like "?##" → 結果為False
• 例:? "S987" Like "S[0-9]" → 結果為True
• 例:? "S987" Like "![A-Z]###" → 結果為False
四、運算子-5
• 邏輯運算子的邏輯變化組合
運算元 邏輯運算子
a b Not a a And b / a AndAlso b
a Or b /
a OrElse b a Xor b
T T
F T T F
T F F T T
F T
T F T T
F F F F F
四、運算子-6
• 最少運算邏輯運算子
•
AndAlso:當第1個運算式結果為非,即傳回False 例:A為False ,B為 True
? A AndAlso B → 結果為False
•
OrElse:當第1個運算式結果為真,即傳回True 例:A為True,B為False
? A OrElse B → 結果為True
四、運算子-7
• 當運算式中同時含有多種運算子時,其優先順序為
• 算術 > 串接 > 關係(比較) > 邏輯