2014-02-26 02:33:02 +04:00
|
|
|
|
---
|
|
|
|
|
language: Visual Basic
|
|
|
|
|
contributors:
|
|
|
|
|
- ["Brian Martin", "http://brianmartin.biz"]
|
2014-02-26 02:35:27 +04:00
|
|
|
|
translators:
|
2014-02-26 02:33:02 +04:00
|
|
|
|
- ["Abner Chou", "http://github.com/NoahDragon"]
|
|
|
|
|
lang: zh-cn
|
|
|
|
|
filename: learnvisualbasic.vb-cn
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
```vb
|
|
|
|
|
Module Module1
|
|
|
|
|
|
|
|
|
|
Sub Main()
|
|
|
|
|
' 让我们先从简单的终端程序学起。
|
2014-02-26 18:39:03 +04:00
|
|
|
|
' 单引号用来生成注释(注意是半角单引号,非全角单引号’)
|
2014-02-26 02:33:02 +04:00
|
|
|
|
' 为了方便运行此示例代码,我写了个目录索引。
|
2014-02-26 18:39:03 +04:00
|
|
|
|
' 可能你还不了解以下代码的意义,但随着教程的深入,
|
|
|
|
|
' 你会渐渐理解其用法。
|
2014-02-26 02:33:02 +04:00
|
|
|
|
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") ' 计算器
|
2014-02-26 18:39:03 +04:00
|
|
|
|
Console.WriteLine("6. Using Do While Loops") ' 使用 Do While 循环
|
|
|
|
|
Console.WriteLine("7. Using For While Loops") ' 使用 For While 循环
|
2014-02-26 02:33:02 +04:00
|
|
|
|
Console.WriteLine("8. Conditional Statements") ' 条件语句
|
2014-02-26 18:39:03 +04:00
|
|
|
|
Console.WriteLine("9. Select A Drink") ' 选饮料
|
2014-02-26 02:33:02 +04:00
|
|
|
|
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() ' 选饮料
|
2014-02-26 18:39:03 +04:00
|
|
|
|
Case "50" ' 关于本程序和作者
|
2014-02-26 02:33:02 +04:00
|
|
|
|
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,下同
|
|
|
|
|
|
2014-02-26 02:35:27 +04:00
|
|
|
|
' 使用 private subs 声明函数。
|
2014-02-26 02:33:02 +04:00
|
|
|
|
Private Sub HelloWorldOutput()
|
|
|
|
|
' 程序名
|
|
|
|
|
Console.Title = "Hello World Ouput | Learn X in Y Minutes"
|
|
|
|
|
' 使用 Console.Write("") 或者 Console.WriteLine("") 来输出文本到屏幕上
|
|
|
|
|
' 对应的 Console.Read() 或 Console.Readline() 用来读取键盘输入
|
|
|
|
|
Console.WriteLine("Hello World")
|
2014-02-26 18:39:03 +04:00
|
|
|
|
Console.ReadLine()
|
|
|
|
|
' Console.WriteLine()后加Console.ReadLine()是为了防止屏幕输出信息一闪而过
|
|
|
|
|
' 类似平时常见的“单击任意键继续”的意思。
|
2014-02-26 02:33:02 +04:00
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
' 二
|
|
|
|
|
Private Sub HelloWorldInput()
|
|
|
|
|
Console.Title = "Hello World YourName | Learn X in Y Minutes"
|
|
|
|
|
' 变量
|
|
|
|
|
' 用来存储用户输入的数据
|
|
|
|
|
' 变量声明以 Dim 开始,结尾为 As VariableType (变量类型).
|
|
|
|
|
|
|
|
|
|
' 此教程中,我们希望知道你的姓名,并让程序记录并输出。
|
|
|
|
|
Dim username As String
|
2014-02-26 18:39:03 +04:00
|
|
|
|
' 我们定义username使用字符串类型(String)来记录用户姓名。
|
2014-02-26 02:33:02 +04:00
|
|
|
|
Console.WriteLine("Hello, What is your name? ") ' 询问用户输入姓名
|
2014-02-26 18:39:03 +04:00
|
|
|
|
username = Console.ReadLine() ' 存储用户名到变量 username
|
|
|
|
|
Console.WriteLine("Hello " + username) ' 输出将是 Hello + username
|
|
|
|
|
Console.ReadLine() ' 暂停屏幕并显示以上输出
|
2014-02-26 02:33:02 +04:00
|
|
|
|
' 以上程序将询问你的姓名,并和你打招呼。
|
|
|
|
|
' 其它变量如整型(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"
|
2014-02-26 18:39:03 +04:00
|
|
|
|
Dim answer As String ' 我们使用字符串变量来存储answer(答案)
|
2014-02-26 02:33:02 +04:00
|
|
|
|
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"
|
2014-02-26 18:39:03 +04:00
|
|
|
|
' 声明变量和Step (步长,即递减的速度,如-1,-2,-3等)。
|
2014-02-26 02:33:02 +04:00
|
|
|
|
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"
|
|
|
|
|
' 有时候我们需要考虑多于两种情况。
|
2014-02-26 18:39:03 +04:00
|
|
|
|
' 这时我们就需要使用If/ElesIf条件语句。
|
2014-02-26 02:33:02 +04:00
|
|
|
|
' If语句就好似个自动售货机,当用户输入A1,A2,A3,等去选择物品时,
|
|
|
|
|
' 所有的选择可以合并到一个If语句中
|
|
|
|
|
|
2014-02-26 18:39:03 +04:00
|
|
|
|
Dim selection As String = Console.ReadLine() ' 读入用户选择
|
2014-02-26 02:33:02 +04:00
|
|
|
|
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,这里还有更深层次的 <a href="http://www.vbbootcamp.co.uk/" Title="VB教学">VB教学(英文)</a>。
|
|
|
|
|
|
|
|
|
|
所有代码均通过测试。只需复制粘帖到Visual Basic中,并按F5运行即可。
|