案例:實作一個随機數值的猜測。
需要兩個窗體:

form1窗體界面
form2窗體界面
在form1中的按鈕文字,我們通過代碼來實作,同時輸出幾個随機數做練習。
form1窗體的代碼:
Private Sub Command1_Click()
Form2.Show
End Sub
Private Sub Form_Load()
Show
Print Int(5.8)
Print Int(-1.2)
Randomize
Print Int(Rnd * 101)
'修改按鈕文字為“開始遊戲”
Command1.Caption = "開始遊戲"
End Sub
複制
其中,Form2.Show表示顯示form2窗體。
這裡要注意的是,在列印print輸出前,在form_load事件中要加上關鍵字Show
int函數表示向下取整函數。
Print Int(5.8)列印輸出的結果是5
Print Int(-1.2)列印輸出結果為-2
注意負數的向下取整會與整數的思維比較不同,但總體原則都是取比原來數值小的最接近的那個整數。
Randomize是随機數種子,可以使得增大随機數不同的機率。
Print Int(Rnd * 101)表示輸出[0,101)之間的随機整數。
Command1.Caption = "開始遊戲"表示給form1中的那個按鈕指派一個文字。
form1效果圖如下:
form2窗體代碼:
Dim a As Integer
Private Sub Command1_Click()
Dim s As String
s = InputBox("請輸入猜測的數值:", "猜測消息")
Print s
If Val(s) > a Then
MsgBox "猜大了", , "消息"
ElseIf Val(s) < a Then
MsgBox "猜小了", , "消息"
Else
msgxo "恭喜你,才對了!可以買彩票啦!"
End If
End Sub
Private Sub Form_Load()
Form2.Caption = "猜數字遊戲--作者:辣椒油"
'給變量a指派,指派為一個随機數
Randomize
'系統随機生成一個1~100之間的随機整數
a = 1 + Int(Rnd * 100)
Show
Print "系統已經随機生成一個1~100之間的随機整數"
Print a
End Sub
複制
注意:
- Dim a As Integer是在form2窗體的“通用”中的,表示form2窗體的全局變量。
- Dim s As String表示聲明一個自定義的變量s為字元串類型。
- InputBox("請輸入猜測的數值:", "猜測消息")輸出的結果是一個字元串類型,是以,我們将輸出結果傳回到s中
- Val(s) > a 在if語句中進行比較的時候,我們要把比較的值都轉為數值類型才能正常比較。
- val函數的作用:就是将字元串類型轉為數值類型。
我們通過以下語句來進行判斷是否猜中數值:
If Val(s) > a Then
MsgBox "猜大了", , "消息"
ElseIf Val(s) < a Then
MsgBox "猜小了", , "消息"
Else
msgxo "恭喜你,才對了!可以買彩票啦!"
End If
複制
這裡的if...elseif...else ....end if 這個語句中的if條件隻會進入其中某一條。
form2效果圖如下:
猜測效果圖:
正在輸入猜測數值
猜大的情況
猜小的情況
猜對的情況
補充思考:
添加一個form3窗體,作用是“倒計時遊戲開始時間”。
我們将form1窗體的開始遊戲按鈕,點選後,跳轉到form3窗體,然後,form3窗體預設從10開始倒計時,每一秒減去一,直到為0時,跳轉到遊戲窗體form2窗體。
項目結構如下圖:
form3窗體的界面設計如下圖:
form3窗體源代碼:
Private Sub Form_Load()
Me.Caption = "遊戲倒計時..."
Label1.Caption = 10
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Val(Label1.Caption) - 1
If Label1.Caption = "5" Then
Form2.Show
Timer1.Enabled = False
End If
End Sub
複制