vb.net结构语句 vb基本结构

visual basic.net中,存在哪几种选择语句

经过长时间学习VB.NET条件语句,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。在程序设计中,VB.NET条件语句能够根据表达式的值来决定代码的执行流程。在VB.NET中,条件分支语句有两种:If/Then/Else语句和Select/Case语句。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的华容网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

1. If/Then/Else语句

If/Then/Else语句是最常用的VB.NET条件语句。它的基本形式是:

If condition Then statements1 [Else statements2 ]

它表示:如果condition为True,那么就执行statements1;否则执行statements2。根据时间显示问候信息。

%

If Hour(Now)12 Then Response.Write ("Good morning! Cindy!")

If Hour(Now)=12 Then Response.Write ("Good noon! Cindy!")

If (Hour(Now)12 And Hour(Now)18) Then Response.Write ("Good afternoon! Cindy!")

If Hour(Now)=18 Then Response.Write ("Good evening! Cindy!")

%

在上面的例子中,函数Hour()是对给出的日期时间求它的小时数,Now函数用于返回当前的日期和时间。程序根据当时的时间判定是上午、中午还是下午,分别给出问候信息。我们看到,这个写法很简单,但是这个程序为了显示一条问候信息,要对Hour(Now)取值4次并且执行4次比较才能完成,从效率上考虑并不好。If/Then/Else语句还可以写成比较复杂的形式:

If condition_1 Then

statements_1

[ElseIf condition_m Then statements_m

[ElseIf condition_n Then…]]

[Else statements_2]

End If

这个语句可以检测多个条件。第一种写法要求语句在写的时候要在一行中写完,例如例2.4 的第2行的If语句。这条语句也可以采用第二种方法来写,方法如下:

If Hour(Now)12 Then

Response.Write ("Good Morning!Cindy!")

End If

建议用户采用后一种写法,因为这种方法更结构化,可读性好。当用户在调试大型软件的代码时,会发现,虽然看起来多写了几行语句,但好处却是很大的。根据时间显示问候信息。请注意这个例子的写法与上个例子中的写法在执行效率上的区别。

%

If Hour(Now)12 Then

Response.Write ("Good morning! Cindy!")

ElseIf Hour(Now)=12 Then

Response.Write ("Good noon! Cindy!")

ElseIf Hour(Now)=18 Then

Response.Write ("Good evening! Cindy!")

Else

Response.Write ("Good afternoon! Cindy!")

End If

%

上面的例子在执行的过程中,对于当前不同的时间,为了显示问候信息,执行的Hour(Now)的取值和比较的次数是不一样的:最少只要1次,最多需要3次。

2. Select/Case结构

当程序中的条件比较复杂,而且是根据同一个表达式的不同值执行不同操作的时候,用If/Then/Else语句来写就显得十分烦琐。这时可以考虑采用Select/Case结构来完成VB.NET条件语句。

Select/Case结构为:

Select Case testexpression

Case condition_1

statements_1

[… Case Else statements_n]

End Select

它表示:如果testexpression的值是Condition_1,就执行statements_1,以此类推,如果都不符合,就执行Statements_n。用Select/Case语句来实现问候信息的显示。

%

Select Case Hour(Now)

Case 0,1,2,3,4,5,6,7,8,9,10,11

Response.Write ("Good morning! Cindy!")

Case 12

Response.Write ("Good noon! Cindy!")

Case 13,14,15,16,17

Response.Write ("Good afternoon! Cindy!")

Case Else

Response.Write ("Good evening! Cindy!")

End Select

%

很明显,用这种方法来显示问候信息要比用If/Then/Else语句清楚得多。因此,在选择VB.NET条件语句的时候要考虑好采用什么方式,并认真设置好条件。

VB.NET 里 结构(Structure)和类(Class)有什么区别?如题 谢谢了

Structure是值类型,classe是引用类型 Structure用栈来分配; classe用堆来分配 structure的成员默认情况下是公共的,而Class的成员变量和常量默认情况下是私有的而其它成员默认情况下是公共的.这与VB6是相兼容的。 structure必须至少有一个非共享的成员变量或事件成员,class可以完全是空的. Structure的成员不能声明成Protected; class成员可以. 一个structure过程只能在它是一个Shared Sub时才能handle events而且只能通过AddHandler语句;而任何class过程都可以handle events,既可以用Handles关键字或 AddHandler语句。 Structure variable declarations cannot specify initializers, the New keyword, or initial sizes for arrays; class variable declarations can. Structure继承自ValueType类,不能从其它任何类型继承; classes可以从任何不是ValueType的类继承 Structure不能继承而Class可以 Structure从来不析构terminated因此common language runtime (CLR)从来不调用它的Finalize方法,classe由垃圾回收器进行析构, 当没有任何对该类的引用时调用它的Finalize方法 structure 不需要一个构造函数,而Class需要 Structure只能有带参数的非共享的构造函数; classes 可以有带或不带参数的构造函数. 每个Structure都有一个默认的不带参数的构造函数以对其成员进行初始化,你可以重新定义该函数

vb.net 从3个红球、5个白球、6个绿球中任意取出8个球,且其中必须有白球,试利用循环结构语句编写。

Public Class Form1

Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

Public Sub New()

MyBase.New()

'该调用是 Windows 窗体设计器所必需的。

InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化

End Sub

'窗体重写 dispose 以清理组件列表。

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'Windows 窗体设计器所必需的

Private components As System.ComponentModel.IContainer

'注意: 以下过程是 Windows 窗体设计器所必需的

'可以使用 Windows 窗体设计器修改此过程。

'不要使用代码编辑器修改它。

Friend WithEvents txtResult As System.Windows.Forms.TextBox

Friend WithEvents btnStart As System.Windows.Forms.Button

Private WithEvents lblResult As System.Windows.Forms.Label

System.Diagnostics.DebuggerStepThrough() Private Sub InitializeComponent()

Me.txtResult = New System.Windows.Forms.TextBox

Me.btnStart = New System.Windows.Forms.Button

Me.lblResult = New System.Windows.Forms.Label

Me.SuspendLayout()

'

'txtResult

'

Me.txtResult.Location = New System.Drawing.Point(0, 16)

Me.txtResult.Name = "txtResult"

Me.txtResult.Size = New System.Drawing.Size(480, 21)

Me.txtResult.TabIndex = 0

Me.txtResult.Text = ""

'

'btnStart

'

Me.btnStart.Location = New System.Drawing.Point(384, 48)

Me.btnStart.Name = "btnStart"

Me.btnStart.TabIndex = 1

Me.btnStart.Text = "开始"

'

'lblResult

'

Me.lblResult.Location = New System.Drawing.Point(8, 48)

Me.lblResult.Name = "lblResult"

Me.lblResult.Size = New System.Drawing.Size(161, 26)

Me.lblResult.TabIndex = 2

'

'Form1

'

Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)

Me.ClientSize = New System.Drawing.Size(488, 86)

Me.Controls.Add(Me.lblResult)

Me.Controls.Add(Me.btnStart)

Me.Controls.Add(Me.txtResult)

Me.Name = "Form1"

Me.Text = "Form1"

Me.ResumeLayout(False)

End Sub

#End Region

Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

Me.txtResult.Text = ""

'声明一个球箱

Dim iBall() As String = {"red", "red", "red", "white", "white", "white", "white", "white", "green", "green", "green", "green", "green", "green"}

Dim i As Integer = 0

Dim result As String = ""

Dim rand As New Random

Dim temp As Integer

While (result.Split(" ").GetUpperBound(0) 7) '任意选取7个球

temp = CInt(rand.NextDouble() * 13)

If iBall.GetValue(temp) "" Then

result += iBall.GetValue(temp) " "

iBall.SetValue("", temp) '已取出那个球置为空

End If

End While

If result.IndexOf("white") = 0 Then '是否存在白球

While (result.Split(" ").GetUpperBound(0) 8) '选第八个球

temp = CInt(rand.NextDouble() * 13)

If iBall.GetValue(temp) "" Then

result += iBall.GetValue(temp) " "

iBall.SetValue("", temp) '已取出那个球=""

End If

End While

Else '不存在==将白球插入以上任意两个球之间

result = result.Insert(result.IndexOf(" ", CInt(rand.NextDouble() * (result.Length - 1))), " white")

End If

Me.txtResult.Text = result

DrawBall(result)

End Sub

Sub DrawBall(ByVal result As String)

Dim g As Graphics = Me.lblResult.CreateGraphics

Dim str() As String = result.Split(" ")

Dim i As Integer

g.Clear(Color.Blue)

g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

For i = 0 To str.GetUpperBound(0)

Dim ref As New Rectangle(i * 20, 3, 20, 20)

Select Case str(i)

Case "red"

g.DrawEllipse(Pens.Black, ref)

g.FillEllipse(New SolidBrush(Color.Red), ref)

Case "green"

g.DrawEllipse(Pens.Black, ref)

g.FillEllipse(New SolidBrush(Color.Green), ref)

Case "white"

g.DrawEllipse(Pens.Black, ref)

g.FillEllipse(New SolidBrush(Color.White), ref)

Case Else

g.DrawEllipse(Pens.Black, ref)

g.FillEllipse(New SolidBrush(Color.Black), ref)

End Select

Next

End Sub

End Class

vb.net 循环结构嵌套

Public Class Form1

For i = 1 To 9

For j = 1 To 9

If j = i Then

Label1.Text = Label1.Text  " "  i  "*"  j  "="  IIf(i * j  9, i * j, i * j  " ")

End If

Next

Label1.Text = Label1.Text  vbCrLf

Next

End Sub

End Class

label属性设置:AutoSize设置为F,Size设置为440,190,BACKCOLOR设置为WHITE


文章标题:vb.net结构语句 vb基本结构
本文链接:http://azwzsj.com/article/docccco.html