- 帖子
- 57
- 主題
- 7
- 精華
- 3
- 積分
- 60
- 點名
- 0
- 作業系統
- WINDOWSXP
- 軟體版本
- 2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2011-4-9
|
[分享] visual basic.net 新手教學之基本流程
本帖最後由 呆呆 於 2010-5-16 23:39 編輯
這裡要說的是所有開發式程式語言應該都會有的部分,不論你是學那一種程式語言,應該都不會有太大的不同
- if 狀況一 then ..... end if
這個陳述句的意思是,如果符合狀況一,那就做某一件事
這個很容易舉例,我在小學的時候,老師時常說,考試不及格者,少一分打一下, 所以就變成- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 考試分數 As Integer
- Const 及格分數 As Integer = 60
- 考試分數 = 53
- Dim 被打次數 As Integer = 及格分數 - 考試分數
- If 被打次數 > 0 Then MessageBox.Show("你要被打" & 被打次數 & "下")
- End Sub
- End Class
複製代碼 上面這個意思是說,如果被打次數大於0才會繼續執行以下的動作,而照理說
If 被打次數 > 0 Then MessageBox.Show("你要被打" & 被打次數 & "下") 應該還要加一句 end if
就像是這樣
If 被打次數 > 0 Then
MessageBox.Show("你要被打" & 被打次數 & "下")
end if
但因為句子很短 只有一列 visual basic 允許 我們不寫end if 如果超過一行,那你就要寫了
當然,這樣的陳述有時候還不夠,我們想要及格的人也有相關的回應,因此有這個對應的語法
- if 狀況一 then
' 你想要做的事
else
' 你想要做的事
end if
以下為例子- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 考試分數 As Integer
- Const 及格分數 As Integer = 60
- 考試分數 = 60
- Dim 被打次數 As Integer = 及格分數 - 考試分數
- If 被打次數 > 0 Then
- Else
- MessageBox.Show("恭喜你逃過一劫")
- End If
- End Sub
- End Class
複製代碼 這應該再容易不過了,不過是數學的三一律,不是大於,就是小於,再不就是等於,沒有其它狀況了
我們設定了 大於 0 ,那其它的部分就是 小於 和等於 0 的部分
但我們只有低於60分的部分,和高於或等於60分,但其它的分數區間我們也想做一個回應,應該怎麼做,visual basic 也提供了
對應的語法
- if 狀況一 then
' 你想要做的事
elseif 狀況二 then
'你想要做的事
elseif 狀況三 then
'你想要做的事
.......
elseif 狀況不知凡幾 then
'你想要做的事
else
' 你想要做的事
end if
以下是範例- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 考試分數 As Integer
- 考試分數 = 89
- If 考試分數 = 100 Then
- MessageBox.Show("完美")
- ElseIf 考試分數 >= 90 Then
- MessageBox.Show("優秀")
- ElseIf 考試分數 >= 80 Then
- MessageBox.Show("具有相當實力")
- ElseIf 考試分數 >= 70 Then
- MessageBox.Show("不錯,加油")
- ElseIf 考試分數 >= 60 Then
- MessageBox.Show("好險")
- Else
- MessageBox.Show("欠揍")
- End If
-
- End Sub
- End Class
複製代碼 以上 if else 的語法 比較不具可讀性,有一種叫 select case 的語法,讓我們更能容易了解程式碼在做什麼
-
Select Case (某一變數,列舉)
Case 狀況一
'你想做的事
Case 狀況二
'你想做的事
Case 不知凡幾
'你想做的事
......
Case else
'你想做的事
End Select
以下為範例- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 狀況回應 As DialogResult
- 狀況回應 = MessageBox.Show("狀況回應", "測試", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
- Select Case 狀況回應
- Case Windows.Forms.DialogResult.No
- MessageBox.Show("NO")
- Case Windows.Forms.DialogResult.Yes
- MessageBox.Show("Yes")
- Case Else
- MessageBox.Show("欠揍")
- End Select
- End Sub
- End Class
複製代碼
迴圈
迴圈也是程式語言相檔重要的一環
以下介紹幾種
For i = 開始 to 結束 step 遞增量
'你想要做的事
Next i
以下為範例
- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 計數 As Integer
- For i As Integer = 0 To 10 Step 1
- 計數 = 計數 + 1
- Next i
- MessageBox.Show(計數)
- End Sub
- End Class
複製代碼 從0到10一共做了11次
實際上, step 1可以不寫 因為內定就是 step 1
所以我們可以改成- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 計數 As Integer
- For i As Integer = 0 To 10 Step 2
- 計數 = 計數 + 1
- Next i
- MessageBox.Show(計數)
- End Sub
- End Class
複製代碼 做了6次
但這種迴圈只有當前後值一開始就決定的時會才有效
如果一開始無法確定那要如何呢
我們就有另外一種迴圈產生
- Do While 狀況敍述
'做你要做的事
Loop- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim i As Integer = 0
- Dim 總和 As Integer = 0
- Do While 總和 < 1000
- i = i + 1
- 總和 = 總和 + i
- Loop
- MessageBox.Show("總共做了" & i.ToString & "次" & "總和=" & 總和.ToString)
- End Sub
- End Class
複製代碼 這個程式碼告訴我們,當總和大於1000時會離開迴圈,所得的結果是大於1000的最小數
- Do
' 你要做的事
Loop Until 狀況敍述
上面的程式碼改寫就變成以下,判斷式寫在後面的意義在於一定會先做一次, 而do While 和 do Until 剛好是相反- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim i As Integer = 0
- Dim 總和 As Integer = 0
- Do
- i = i + 1
- 總和 = 總和 + i
- Loop Until 總和 >= 1000
- MessageBox.Show("總共做了" & i.ToString & "次" & "總和=" & 總和.ToString)
- End Sub
- End Class
複製代碼 - For each 單元 in 集合
'你要做的事
next 單元
這種語法一般會用在陣列,集合這種容器類的東西的存取- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 一星期() As String = {"星期日", "星期一", "星期二", "星期三", "星期四", " 星期五", "星期六"}
- For Each day As String In 一星期
- MessageBox.Show(day)
- Next
- End Sub
- End Class
複製代碼 或者也可以利用IEnumerator 介面- Public Class Form1
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim 一星期() As String = {"星期日", "星期一", "星期二", "星期三", "星期四", " 星期五", "星期六"}
- Dim f As IEnumerator = 一星期.GetEnumerator
- While f.MoveNext
- MessageBox.Show(DirectCast(f.Current, String))
- End While
- End Sub
- End Class
複製代碼
|
|