博客 / 詳情

返回

Y 分鐘速成 Visual Basic

源代碼下載: learnvisualbasic-cn.vb

Module Module1

    Sub Main()
        ' 讓我們先從簡單的終端程序學起。
        ' 單引號用來生成註釋(注意是半角單引號,非全角單引號’)
        ' 為了方便運行此示例代碼,我寫了個目錄索引。
        ' 可能你還不瞭解以下代碼的意義,但隨着教程的深入,
        ' 你會漸漸理解其用法。
        Console.Title = ("Learn X in Y Minutes")
        Console.WriteLine("NAVIGATION") ' 顯示目錄
        Console.WriteLine("")
        Console.ForegroundColor = ConsoleColor.Green
        Console.WriteLine("1. Hello World Output") ' Hello world 輸出示例
        Console.WriteLine("2. Hello World Input") ' Hello world 輸入示例
        Console.WriteLine("3. Calculating Whole Numbers") ' 求整數之和
        Console.WriteLine("4. Calculating Decimal Numbers") ' 求小數之和
        Console.WriteLine("5. Working Calculator") ' 計算器
        Console.WriteLine("6. Using Do While Loops") ' 使用 Do While 循環
        Console.WriteLine("7. Using For While Loops") ' 使用 For While 循環
        Console.WriteLine("8. Conditional Statements") ' 條件語句
        Console.WriteLine("9. Select A Drink") ' 選飲料
        Console.WriteLine("50. About") ' 關於
        Console.WriteLine("Please Choose A Number From The Above List")
        Dim selection As String = Console.ReadLine
        Select Case selection
            Case "1" ' Hello world 輸出示例
                Console.Clear() ' 清空屏幕
                HelloWorldOutput() ' 調用程序塊
            Case "2" ' Hello world 輸入示例
                Console.Clear()
                HelloWorldInput()
            Case "3" ' 求整數之和
                Console.Clear()
                CalculatingWholeNumbers()
            Case "4" ' 求小數之和
                Console.Clear()
                CalculatingDecimalNumbers()
            Case "5" ' 計算器
                Console.Clear()
                WorkingCalculator()
            Case "6" ' 使用 do while 循環
                Console.Clear()
                UsingDoWhileLoops()
            Case "7" ' 使用 for while 循環
                Console.Clear()
                UsingForLoops()
            Case "8" ' 條件語句
                Console.Clear()
                ConditionalStatement()
            Case "9" ' If/Else 條件語句
                Console.Clear()
                IfElseStatement() ' 選飲料
            Case "50" ' 關於本程序和作者
                Console.Clear()
                Console.Title = ("Learn X in Y Minutes :: About")
                MsgBox("This tutorial is by Brian Martin (@BrianMartinn")
                Console.Clear()
                Main()
                Console.ReadLine()

        End Select
    End Sub

    ' 一、對應程序目錄1,下同

    ' 使用 private subs 聲明函數。 
    Private Sub HelloWorldOutput()
        ' 程序名
        Console.Title = "Hello World Output | Learn X in Y Minutes"
        ' 使用 Console.Write("") 或者 Console.WriteLine("") 來輸出文本到屏幕上
        ' 對應的 Console.Read() 或 Console.Readline() 用來讀取鍵盤輸入
        Console.WriteLine("Hello World")
        Console.ReadLine() 
        ' Console.WriteLine()後加Console.ReadLine()是為了防止屏幕輸出信息一閃而過
        ' 類似平時常見的“單擊任意鍵繼續”的意思。
    End Sub

    ' 二
    Private Sub HelloWorldInput()
        Console.Title = "Hello World YourName | Learn X in Y Minutes"
        ' 變量
        ' 用來存儲用户輸入的數據
        ' 變量聲明以 Dim 開始,結尾為 As VariableType (變量類型).

        ' 此教程中,我們希望知道你的姓名,並讓程序記錄並輸出。
        Dim username As String
        ' 我們定義username使用字符串類型(String)來記錄用户姓名。
        Console.WriteLine("Hello, What is your name? ") ' 詢問用户輸入姓名
        username = Console.ReadLine() ' 存儲用户名到變量 username
        Console.WriteLine("Hello " + username) ' 輸出將是 Hello + username
        Console.ReadLine() ' 暫停屏幕並顯示以上輸出
        ' 以上程序將詢問你的姓名,並和你打招呼。
        ' 其它變量如整型(Integer)我們用整型來處理整數。
    End Sub

    ' 三
    Private Sub CalculatingWholeNumbers()
        Console.Title = "Calculating Whole Numbers | Learn X in Y Minutes"
        Console.Write("First number: ") ' 輸入一個整數:1,2,50,104,等等
        Dim a As Integer = Console.ReadLine()
        Console.Write("Second number: ") ' 輸入第二個整數
        Dim b As Integer = Console.ReadLine()
        Dim c As Integer = a + b
        Console.WriteLine(c)
        Console.ReadLine()
        ' 以上程序將兩個整數相加
    End Sub

    ' 四
    Private Sub CalculatingDecimalNumbers()
        Console.Title = "Calculating with Double | Learn X in Y Minutes"
        ' 當然,我們還需要能夠處理小數。
        ' 只需要要將整型(Integer)改為小數(Double)類型即可。

        ' 輸入一個小數: 1.2, 2.4, 50.1, 104.9,等等
        Console.Write("First number: ")
        Dim a As Double = Console.ReadLine
        Console.Write("Second number: ") ' 輸入第二個數
        Dim b As Double = Console.ReadLine
        Dim c As Double = a + b
        Console.WriteLine(c)
        Console.ReadLine()
        ' 以上代碼能實現兩個小數相加
    End Sub

    ' 五
    Private Sub WorkingCalculator()
        Console.Title = "The Working Calculator| Learn X in Y Minutes"
        ' 但是如果你希望有個能夠處理加減乘除的計算器呢?
        ' 只需將上面代碼複製粘帖即可。
        Console.Write("First number: ") ' 輸入第一個數
        Dim a As Double = Console.ReadLine
        Console.Write("Second number: ") ' 輸入第二個數
        Dim b As Integer = Console.ReadLine
        Dim c As Integer = a + b
        Dim d As Integer = a * b
        Dim e As Integer = a - b
        Dim f As Integer = a / b

        ' 通過以下代碼我們可以將以上所算的加減乘除結果輸出到屏幕上。
        Console.Write(a.ToString() + " + " + b.ToString())
        ' 我們希望答案開頭能有3個空格,可以使用String.PadLeft(3)方法。
        Console.WriteLine(" = " + c.ToString.PadLeft(3))
        Console.Write(a.ToString() + " * " + b.ToString())
        Console.WriteLine(" = " + d.ToString.PadLeft(3))
        Console.Write(a.ToString() + " - " + b.ToString())
        Console.WriteLine(" = " + e.ToString.PadLeft(3))
        Console.Write(a.ToString() + " / " + b.ToString())
        Console.WriteLine(" = " + e.ToString.PadLeft(3))
        Console.ReadLine()

    End Sub

    ' 六
    Private Sub UsingDoWhileLoops()
        ' 如同以上的代碼一樣
        ' 這次我們將詢問用户是否繼續 (Yes or No?)
        ' 我們將使用Do While循環,因為我們不知到用户是否需要使用一次以上。
        Console.Title = "UsingDoWhileLoops | Learn X in Y Minutes"
        Dim answer As String ' 我們使用字符串變量來存儲answer(答案)
        Do ' 循環開始
            Console.Write("First number: ")
            Dim a As Double = Console.ReadLine
            Console.Write("Second number: ")
            Dim b As Integer = Console.ReadLine
            Dim c As Integer = a + b
            Dim d As Integer = a * b
            Dim e As Integer = a - b
            Dim f As Integer = a / b

            Console.Write(a.ToString() + " + " + b.ToString())
            Console.WriteLine(" = " + c.ToString.PadLeft(3))
            Console.Write(a.ToString() + " * " + b.ToString())
            Console.WriteLine(" = " + d.ToString.PadLeft(3))
            Console.Write(a.ToString() + " - " + b.ToString())
            Console.WriteLine(" = " + e.ToString.PadLeft(3))
            Console.Write(a.ToString() + " / " + b.ToString())
            Console.WriteLine(" = " + e.ToString.PadLeft(3))
            Console.ReadLine()
            ' 詢問用户是否繼續,注意大小寫。 
            Console.Write("Would you like to continue? (yes / no)")
            ' 程序讀入用户輸入
            answer = Console.ReadLine() ' added a bracket here
        ' 當用户輸入"yes"時,程序將跳轉到Do,並再次執行
        Loop While answer = "yes"

    End Sub

    ' 七
    Private Sub UsingForLoops()
        ' 有一些程序只需要運行一次。
        ' 這個程序我們將實現從10倒數計數.

        Console.Title = "Using For Loops | Learn X in Y Minutes"
        ' 聲明變量和Step (步長,即遞減的速度,如-1,-2,-3等)。 
        For i As Integer = 10 To 0 Step -1 
            Console.WriteLine(i.ToString) ' 將計數結果輸出的屏幕
        Next i ' 計算新的i值
        Console.WriteLine("Start") 
        Console.ReadLine() 
    End Sub

    ' 八
    Private Sub ConditionalStatement()
        Console.Title = "Conditional Statements | Learn X in Y Minutes"
        Dim userName As String = Console.ReadLine
        Console.WriteLine("Hello, What is your name? ") ' 詢問用户姓名
        userName = Console.ReadLine() ' 存儲用户姓名
        If userName = "Adam" Then
            Console.WriteLine("Hello Adam")
            Console.WriteLine("Thanks for creating this useful site")
            Console.ReadLine()
        Else
            Console.WriteLine("Hello " + userName)
            Console.WriteLine("Have you checked out www.learnxinyminutes.com")
            Console.ReadLine() ' 程序停止,並輸出以上文本
        End If
    End Sub

    ' 九
    Private Sub IfElseStatement()
    Console.Title = "If / Else Statement | Learn X in Y Minutes"
        ' 有時候我們需要考慮多於兩種情況。
        ' 這時我們就需要使用If/ElesIf條件語句。
        ' If語句就好似個自動售貨機,當用户輸入A1,A2,A3,等去選擇物品時,
        ' 所有的選擇可以合併到一個If語句中

        Dim selection As String = Console.ReadLine() ' 讀入用户選擇
            Console.WriteLine("A1. for 7Up") ' A1 七喜
            Console.WriteLine("A2. for Fanta") ' A2 芬達
            Console.WriteLine("A3. for Dr. Pepper") ' A3 胡椒醫生
            Console.WriteLine("A4. for Diet Coke") ' A4 無糖可樂
            Console.ReadLine()
            If selection = "A1" Then
                Console.WriteLine("7up")
                Console.ReadLine()
            ElseIf selection = "A2" Then
                Console.WriteLine("fanta")
                Console.ReadLine()
            ElseIf selection = "A3" Then
                Console.WriteLine("dr. pepper")
                Console.ReadLine()
            ElseIf selection = "A4" Then
                Console.WriteLine("diet coke")
                Console.ReadLine()
            Else
                Console.WriteLine("Please select a product") ' 請選擇你需要的產品
                Console.ReadLine()
            End If

    End Sub

End Module

參考

我(譯註:原作者)在命令行下學習的 VB 。命令行編程使我能夠更好的瞭解程序編譯運行機制,並使學習其它語言變得容易。

如果希望進一步學習 VB ,這裏還有更深層次的 VB 教學(英文)。

所有代碼均通過測試。只需複製粘帖到 Visual Basic 中,並按 F5 運行即可。

有建議?或者發現什麼錯誤?在Github上開一個 issue ,或者發起 pull request !


原著 Brian Martin ,並0個好心人修改。
© 2022 Brian Martin
Translated by: Abner Chou
本作品採用 CC BY-SA 3.0 協議進行許可。

user avatar sunhengzhe 頭像 huanjinliu 頭像 light_5cfbb652e97ce 頭像 smile_58bd2c1f62ea0 頭像
4 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.