vb.net結(jié)構(gòu)語句 vb基本結(jié)構(gòu)

visual basic.net中,存在哪幾種選擇語句

經(jīng)過長時(shí)間學(xué)習(xí)VB.NET條件語句,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。在程序設(shè)計(jì)中,VB.NET條件語句能夠根據(jù)表達(dá)式的值來決定代碼的執(zhí)行流程。在VB.NET中,條件分支語句有兩種:If/Then/Else語句和Select/Case語句。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的華容網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1. If/Then/Else語句

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

If condition Then statements1 [Else statements2 ]

它表示:如果condition為True,那么就執(zhí)行statements1;否則執(zhí)行statements2。根據(jù)時(shí)間顯示問候信息。

%

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!")

%

在上面的例子中,函數(shù)Hour()是對給出的日期時(shí)間求它的小時(shí)數(shù),Now函數(shù)用于返回當(dāng)前的日期和時(shí)間。程序根據(jù)當(dāng)時(shí)的時(shí)間判定是上午、中午還是下午,分別給出問候信息。我們看到,這個(gè)寫法很簡單,但是這個(gè)程序?yàn)榱孙@示一條問候信息,要對Hour(Now)取值4次并且執(zhí)行4次比較才能完成,從效率上考慮并不好。If/Then/Else語句還可以寫成比較復(fù)雜的形式:

If condition_1 Then

statements_1

[ElseIf condition_m Then statements_m

[ElseIf condition_n Then…]]

[Else statements_2]

End If

這個(gè)語句可以檢測多個(gè)條件。第一種寫法要求語句在寫的時(shí)候要在一行中寫完,例如例2.4 的第2行的If語句。這條語句也可以采用第二種方法來寫,方法如下:

If Hour(Now)12 Then

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

End If

建議用戶采用后一種寫法,因?yàn)檫@種方法更結(jié)構(gòu)化,可讀性好。當(dāng)用戶在調(diào)試大型軟件的代碼時(shí),會(huì)發(fā)現(xiàn),雖然看起來多寫了幾行語句,但好處卻是很大的。根據(jù)時(shí)間顯示問候信息。請注意這個(gè)例子的寫法與上個(gè)例子中的寫法在執(zhí)行效率上的區(qū)別。

%

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

%

上面的例子在執(zhí)行的過程中,對于當(dāng)前不同的時(shí)間,為了顯示問候信息,執(zhí)行的Hour(Now)的取值和比較的次數(shù)是不一樣的:最少只要1次,最多需要3次。

2. Select/Case結(jié)構(gòu)

當(dāng)程序中的條件比較復(fù)雜,而且是根據(jù)同一個(gè)表達(dá)式的不同值執(zhí)行不同操作的時(shí)候,用If/Then/Else語句來寫就顯得十分煩瑣。這時(shí)可以考慮采用Select/Case結(jié)構(gòu)來完成VB.NET條件語句。

Select/Case結(jié)構(gòu)為:

Select Case testexpression

Case condition_1

statements_1

[… Case Else statements_n]

End Select

它表示:如果testexpression的值是Condition_1,就執(zhí)行statements_1,以此類推,如果都不符合,就執(zhí)行Statements_n。用Select/Case語句來實(shí)現(xiàn)問候信息的顯示。

%

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條件語句的時(shí)候要考慮好采用什么方式,并認(rèn)真設(shè)置好條件。

VB.NET 里 結(jié)構(gòu)(Structure)和類(Class)有什么區(qū)別?如題 謝謝了

Structure是值類型,classe是引用類型 Structure用棧來分配; classe用堆來分配 structure的成員默認(rèn)情況下是公共的,而Class的成員變量和常量默認(rèn)情況下是私有的而其它成員默認(rèn)情況下是公共的.這與VB6是相兼容的。 structure必須至少有一個(gè)非共享的成員變量或事件成員,class可以完全是空的. Structure的成員不能聲明成Protected; class成員可以. 一個(gè)structure過程只能在它是一個(gè)Shared Sub時(shí)才能handle events而且只能通過AddHandler語句;而任何class過程都可以handle events,既可以用Handles關(guān)鍵字或 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從來不析構(gòu)terminated因此common language runtime (CLR)從來不調(diào)用它的Finalize方法,classe由垃圾回收器進(jìn)行析構(gòu), 當(dāng)沒有任何對該類的引用時(shí)調(diào)用它的Finalize方法 structure 不需要一個(gè)構(gòu)造函數(shù),而Class需要 Structure只能有帶參數(shù)的非共享的構(gòu)造函數(shù); classes 可以有帶或不帶參數(shù)的構(gòu)造函數(shù). 每個(gè)Structure都有一個(gè)默認(rèn)的不帶參數(shù)的構(gòu)造函數(shù)以對其成員進(jìn)行初始化,你可以重新定義該函數(shù)

vb.net 從3個(gè)紅球、5個(gè)白球、6個(gè)綠球中任意取出8個(gè)球,且其中必須有白球,試?yán)醚h(huán)結(jié)構(gòu)語句編寫。

Public Class Form1

Inherits System.Windows.Forms.Form

#Region " Windows 窗體設(shè)計(jì)器生成的代碼 "

Public Sub New()

MyBase.New()

'該調(diào)用是 Windows 窗體設(shè)計(jì)器所必需的。

InitializeComponent()

'在 InitializeComponent() 調(diào)用之后添加任何初始化

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 窗體設(shè)計(jì)器所必需的

Private components As System.ComponentModel.IContainer

'注意: 以下過程是 Windows 窗體設(shè)計(jì)器所必需的

'可以使用 Windows 窗體設(shè)計(jì)器修改此過程。

'不要使用代碼編輯器修改它。

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 = ""

'聲明一個(gè)球箱

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個(gè)球

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

If iBall.GetValue(temp) "" Then

result += iBall.GetValue(temp) " "

iBall.SetValue("", temp) '已取出那個(gè)球置為空

End If

End While

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

While (result.Split(" ").GetUpperBound(0) 8) '選第八個(gè)球

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

If iBall.GetValue(temp) "" Then

result += iBall.GetValue(temp) " "

iBall.SetValue("", temp) '已取出那個(gè)球=""

End If

End While

Else '不存在==將白球插入以上任意兩個(gè)球之間

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 循環(huán)結(jié)構(gòu)嵌套

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屬性設(shè)置:AutoSize設(shè)置為F,Size設(shè)置為440,190,BACKCOLOR設(shè)置為WHITE

文章標(biāo)題:vb.net結(jié)構(gòu)語句 vb基本結(jié)構(gòu)
網(wǎng)站網(wǎng)址:http://muchs.cn/article20/docccco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、企業(yè)建站、面包屑導(dǎo)航、定制開發(fā)、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)