VB程式設計第四章基本的控制結構

2021-07-16 12:06:48 字數 4857 閱讀 1088

第四章基本的控制結構

主要內容

● 順序結構

● 輸入函式(過程)inputbox

● 輸出函式(過程)msgbox

● 選擇結構(if、select case、iif、shoose、switch)

● 迴圈結構(for … next、do … loop、while … wend)

● 其他輔助控制語句(goto 、exit、end、with)

● 常用演算法(累加連乘特殊數類窮舉法遞推法最大和最小值)

4.1 順序結構

一. 賦值語句

形式: [let]變數名=表示式

作用: 將表示式的值賦值給變數名。

一般用於給變數賦值或對控制項設定屬性值.

[例] srate!=0.1

text1.text = "歡迎使用visual basic 6.0」

說明: (1)當表示式結果為數值型別而與變數的精度不同時,強制轉換成左邊變數的精度。如:

ia% = 10/3 ia中的結果為3,而表示式為3.33333

n%=11/2 結果n的值為6(四捨五入), 而表示式為5.5

(2)當表示式是數字字串,左邊變數是數值型別,自動轉換成數值型別,再賦值。但如有非數字字元或空串,則出錯。如:x% = "9/2"(出錯)

(3)當邏輯型賦值給數值變數時,false 轉成0,true轉成-1後再賦給數值變數。

(4)當數值型表示式賦給邏輯型變數時,非0數值轉成true,0值轉成false後再賦給邏輯變數

(5)任何非字元型別表示式賦給字元變數一律轉成字元型別賦給字元變數

[例] s$=true結果s的值為 true

str$=1.23e+3 結果string的值為 」1230」。

s$=5>11結果s的值為 false

注意:● 雖然賦值號與關係運算子等於號都用「=」表示,vb系統會根據所處的置自動判斷是何種意義的符號。

● 賦值語句的左邊只能是變數,不能是表示式,符號常量。

● 不能在同乙個語句中同時給各個變數賦值。

● 正確理解類似 sum=sum+k 賦值語句的含義

二、 與使用者實現互動的函式和過程

visual basic與使用者之間直接互動是通過inputbox函式、msgbox函式和msgbox過程進行的。

1. inputbox函式

格式:inputbox(提示[,標題][,預設][,x 座標位置][,y座標位置])

其中:「提示」:字串表示式。表示在對話方塊中作為的提示資訊;若要使提示資訊在對話方塊中多行顯示,必須在每行末加上chr(13)+chr(10)控制符或vb常數vbcrlf。

如:inputbox("一行" & vbcrlf & "二行" & vbcrlf & "三行", "標題", 1, 1000, 2000)

「標題」: 字串表示式,對話方塊標題欄的標題,若預設,則標題欄標題為應用程式名稱。「預設」:

使用者不在輸入區輸入資料,則函式返回這個輸入區中的預設值。函式返回的資料型別是字元型別。

「x 座標位置,y座標位置」:整型表示式,表示對話方塊出現在螢幕中的位置。

例要在螢幕上顯示如下的對話方塊:

注意:各引數位置次數必須一一對應,除了提示一項不可省,其餘各項均可省略。處於中間的省略要用逗號佔位符。

如果你在對話方塊中按下了取消按鈕,那麼函式將返回乙個空字串""(即使有預設值也是如此,這時如果直接賦給數值變數就會出現型別錯誤)。

inputbox也可以過程的形式使用,但此時它起不了輸入的作用了。

[例4.1] 在mymb\vb4\ex4_1\lbc4_01.vbp

程式**(form2):

option explicit

dim strname as string

private sub mysub()

dim strs1 as string

strs1 = "請輸入你要借的的參考書名" + chr(13) + chr(10) _

& "然後單擊確定"

strname = inputbox(strs1, "借書請求單", "學用 visual basic 6.0", 2000, 3000)

end sub

private sub command1_click() '返回

unload me '刪除窗體form2

form1.show

end sub

private sub form_load()

form2.caption = "借書通知單"

call mysub

label1.borderstyle = 1

label1.wordwrap = true

label1.autosize = true

if (strname = "") then 『按下了取消按鈕或esc鍵

label1.caption = " 請你務必填好借書請求單,再來借書!"

else '按下了確定按鈕或回車鍵

label1.caption = "你要借的書「" & trim(strname) + "」書庫中還有,請到602書架去取。"

end if

end sub

2. msgbox函式和msgbox過程

函式形式: 變數[%] = msgbox(提示[,按鈕][,標題])

過程形式: msgbox 提示[,按鈕][,標題]

「提示」:字串表示式。表示在msgbox對話方塊中的作為提示的資訊;若要使提示資訊在對話方塊中多行顯示,必須在每行末加上chr(13)+chr(10)控制符。

「標題」: 字串表示式,對話方塊標題欄的標題,若預設,則標題欄標題為應用程式名稱。

「按鈕」:表示在對話方塊中顯示的按鈕個數和按鈕形式,按鈕設定值見下表。

按鈕設定值及意義一覽表

注意:(1)四組按鈕形式可以組合使用(可用內部常數形式或按鈕值形式表示)。

(2)以應用模式建立的對話方塊,則必須響應對話方塊才能繼續當前的應用程式;若以系統模式建立的對話方塊時,所有應用程式將被掛起,直到使用者響應了對話方塊。

(3)msgbox函式返回的是使用者所選按鈕的整數值;如果不需要msgbox返回值,則可把msgbox當作過程使用。

(4)各引數位置次數必須一一對應,處於中間的省略要用逗號佔位符。

msgbox函式返回所選按鈕整數值的意義

[例4.2] 編一帳號和密碼檢驗程式。

要求:帳號不超過6位數字,有錯,清除原內容再輸入。

密碼輸入時在螢幕上以 「*」代替; 若密碼錯,顯示有關資訊,選擇「重試」按鈕,清除原內容再輸入,選擇「取消」按鈕,停止執行。

分析:帳號6位,maxlength為6 , lostfocus判斷數字isnumeric函式

密碼passwordchar為「*」,msgbox函式設定密碼錯對話方塊.

[例4.2] 在mymb\vb4\ex4_2\lbc4_02.vbp

程式**:

private sub form_load()

label1.borderstyle = 1

label1.caption = "帳號"

label2.borderstyle = 1

label2.caption = "密碼"

command1.caption = "確定"

text1.text = ""

text1.maxlength = 6 '帳號文字框允許輸入文字的個數

text1.tabindex = 0 '啟動焦點在帳號文字框

text2.text = ""

text2.maxlength = 4 '口令文字框允許輸入文字的個數

text2.passwordchar = "*" '設定口令保密字元屬性

end sub

private sub text1_lostfocus() 『丟焦事件

if not isnumeric(text1.text) then 『isnumber 是乙個判斷函式

msgbox "帳號中有非數字字元", , "重新輸入" 'msgbox作為過程使用

text1.text = ""

text1.setfocus '焦點仍回到text1上

end if

end sub

private sub command1_click()

dim i as integer

if text2.text <> "gong" then

i = msgbox("密碼輸入錯誤", vbretrycancel + vbexclamation, "輸入密碼")

if i <> vbretry then '如果沒有按下重試鍵,則結束程式執行

endelse

text2.text = ""

text2.setfocus

end if

else

msgbox "輸入正確,可以進行下一步程式", vbokonly, "繼續"

form2.hide

end if

end sub

重要提示

為了方便使用inputbox和msgbox函式,可以在分別在它們的相應引數之前加上關鍵字prompt:=、title:=、buttons:

=、xpos:=、ypos:=、default:

=,這樣使用起來就直觀明了了,同時也不要顧及引數順序和使用「,」號佔位符。另外,在msgbox中的按鈕值和返回值的判斷上盡量使用vb內部常數,不要使用數值(不直觀且難記)。

例如:msgbox title:="密碼輸入", buttons:=vbyesno, prompt:="輸入錯誤!"

book = inputbox(title:="借書請求", ypos:=4000, xpos:

=2000, prompt:="請你輸入要借的書名", default:="vb6.

0程式設計")

第四章選擇結構程式設計

4.1 選擇結構程式設計的概念 在實際工作中,常常需要根據某個條件是否成立,來決定下一步應該做什麼工作。編寫程式讓計算機工作,同樣存在這種情況。在這種情況下,程式不再按照 的書寫順序來執行各語句行的語句,而是根據給定的條件來選擇,執行哪些語句行,不執行哪些語句行。選擇結構程式也稱為分支構造程式,即程...

第四章選擇結構程式設計

選擇結構是結構化程式設計的三種基本結構之一。c語言用關係運算或邏輯運算來判斷條件是否能夠得到滿足,並根據計算的結果決定程式的不同流程,實現選擇結構的程式設計。4.1 關係運算和邏輯運算 4.1.1 邏輯值及其在c語言中的表示 關係運算和邏輯運算的運算結果都是乙個邏輯值,邏輯值只有兩個值,即 真 和 ...

第四章選擇結構程式設計

4.2 case語句 case語句是由乙個表示式和眾多可選擇的操作序列組成。執行時,根據表示式的求值結果,在眾多的分支中選取乙個分支執行。其形式為 case 表示式 of 常量1 語句1 常量2 語句2 常量n 語句n else 語句 n 1 可選項 end 表示式只能是順序型別 除了實型以外的簡單...