国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > VBScript > 正文

VBS基礎(chǔ)編程教程 (第3篇)

2020-03-24 16:53:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
第三篇(共六篇):
首先, 我來(lái)解決一下上次課程的幾個(gè)疑問(wèn)

第一, 那個(gè)余數(shù)問(wèn)題, 16 / 5 = 3...1, 是因?yàn)槲腋倪^(guò)前面的部分, 后面的忘了改了, 不好意思.

第二, 請(qǐng)看一下程序清單:

1)
Dim a,b,c
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
c=a*2+b*2
Msgbox(c)
這個(gè) 輸入1、2時(shí)是6

2)
Dim a,b,c
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
c=(a+b)*2
Msgbox(c)
這個(gè)輸入1、2時(shí)是24

為什么會(huì)不一樣呢? 在數(shù)學(xué)上c=(a+b)*2 和 c=a*2+b*2是等價(jià)的, 在VBS中也是如此. 問(wèn)題出在"+"上, 在VBS中, +不僅僅是加號(hào)的意思還表示把兩個(gè)字符串連接起來(lái), 例如"Hello"+"World"="HelloWorld" have you understood? 你還記得InoutBox函數(shù)的返回值嗎? 是字符串! 這就看出問(wèn)題了吧, 在編程中"1"不等于( )1, "1"是一個(gè)字符, 而1是一個(gè)數(shù), 所以a,b都是字符串變量, "1"+"2"="12", 這就好像我們小時(shí)跟伙伴開(kāi)玩笑問(wèn)他們1+1=?一樣, 我們總是笑著說(shuō)"錯(cuò)啦,應(yīng)該是11".但為什么, a可以*2卻不發(fā)生錯(cuò)誤呢? 這時(shí)VBS比較智能的一個(gè)表現(xiàn), 如果這個(gè)字符串的內(nèi)容是一個(gè)數(shù)且對(duì)他進(jìn)行數(shù)學(xué)運(yùn)算, 則把字符串強(qiáng)制轉(zhuǎn)換成數(shù)參與運(yùn)算, 如果字符串代表一個(gè)數(shù), 但不參加數(shù)學(xué)運(yùn)算, 而是參加字符串運(yùn)算(合并)則當(dāng)作字符串處理, 所以你看到a+b=12, 這時(shí)候a+b的結(jié)果(12)是一個(gè)字符串, 當(dāng)它要乘以2的時(shí)候就被強(qiáng)制轉(zhuǎn)換成了數(shù)字12, 這樣我就得到了結(jié)果24.

怎么修改這個(gè)程序呢? 我們需要用到另一個(gè)內(nèi)建的函數(shù):int, int函數(shù)的功能是將輸入值轉(zhuǎn)化成整數(shù)值, 我們這樣修改:

c=(int(a)+int(b))*2

這個(gè)意思就是把a(bǔ)作為參數(shù)傳遞給int函數(shù), int函數(shù)就會(huì)返回那個(gè)整數(shù)(你的輸入值), 然后讓返回值參與運(yùn)算, 這樣就得到了正確答案.所以,以后如果你用的是inputbox函數(shù)的話(huà),最好用int語(yǔ)句加工一下:比如c=int(c) 'c是你自己的變量

大家是不是覺(jué)得這個(gè)課程有點(diǎn)枯燥, 呵呵, 變量和運(yùn)算符部分的確是這樣的, 不過(guò)多多練習(xí)也就好了, 這次, 我們寫(xiě)寫(xiě)真正好玩的東西: 流程控制語(yǔ)句. 這個(gè)部分開(kāi)始才是真正的編程.

首先介紹判斷結(jié)構(gòu).

在此之前, 我們先介紹一種簡(jiǎn)單的變量類(lèi)型:布爾值(Boolean), 這種變量只有兩個(gè)可能值:True,Flase,即真或假. 這種變量在某些情況下很有用(比如"開(kāi)關(guān)"). 我們定義一個(gè)bool變量的方法和其他變量一樣, 賦值也一樣, 例如:

dim a,b
a=true
b=false

注意,true和"true"是不一樣的, "true"是字符串,true是布爾值, 千萬(wàn)不能混淆.

回到if語(yǔ)句上來(lái), 我們先來(lái)看看簡(jiǎn)化版的if語(yǔ)句:if 判斷式 then 語(yǔ)句體 我們來(lái)看一個(gè)例子:

dim a,b
a=12
b=13
if b a then msgbox("B大于A")

我們只看最后一行, a b這個(gè)式子(表達(dá)式)有一個(gè)返回值, 是bool型的. 因?yàn)檫@個(gè)式子只有兩種可能:b大于a, b不大于a, 所以這個(gè)式子也只有兩種可能性, 即真或者假. if語(yǔ)句判斷這個(gè)表達(dá)式的返回值是真還是假, 如果是真(true)則執(zhí)行then后面的語(yǔ)句, 如果是假, 則不執(zhí)行, 你把a(bǔ)的值改成14看看還會(huì)不會(huì)彈出對(duì)話(huà)框?

當(dāng)我們要在判斷之后執(zhí)行多行語(yǔ)句怎么辦呢, 我們需要用語(yǔ)句塊來(lái)解決, 在這里可以叫塊if

dim a,b
a=12
b=13
if a b then
msgbox("A小于B")
msgbox("B大于A")
end if

兩個(gè)msgbox函數(shù)夾在if和end if之間, 這個(gè)部分就是語(yǔ)句塊, 塊里的每一條語(yǔ)句之前請(qǐng)空出4--8(一個(gè) Tab 鍵)個(gè)格, 這不是必需的, 但是是一個(gè)好習(xí)慣, 以便看清楚程序的結(jié)構(gòu). 這樣我們就能運(yùn)行多于一個(gè)的語(yǔ)句, 請(qǐng)注意if...then...end if 這三個(gè)關(guān)鍵部分不要掉了. OK, 我出一個(gè)題, 輸入一個(gè)數(shù), 如果小于100就輸出"錯(cuò)誤", 如果大于100就輸出"正確", 我這里有兩個(gè)程序版本:

dim a
a=inputbox("請(qǐng)輸入一個(gè)大于100的數(shù)")
a=int(a) 'inputbox返回的是字符串, 我們把他變成整數(shù) : )
if a 100 then msgbox("正確")
if a 100 then msgbox("錯(cuò)誤")

還有一個(gè)更簡(jiǎn)單的

dim a
a=inputbox("請(qǐng)輸入一個(gè)大于100的數(shù)")
a=int(a) 'inputbox返回的是字符串, 我們把他變成整數(shù)
if a 100 then
msgbox("正確")
else
msgbox("錯(cuò)誤")
end if

看到多了一個(gè)else了吧, else的作用就是當(dāng)要判斷的表達(dá)式為false時(shí)執(zhí)行的. 這樣程序就可以處理兩種不同的情況了. 不要忘了用end if結(jié)尾

嘿嘿, 我是變態(tài)者, 現(xiàn)在我要你處理三種情況, 100,=100, 100, 還要寫(xiě)在一個(gè)if結(jié)構(gòu)里, 你怎么辦, 我給你答案:

dim a
a=inputbox("請(qǐng)輸入一個(gè)大于100的數(shù)")
a=int(a) 'inputbox返回的是字符串, 我們把他變成整數(shù)
if a 100 then
msgbox("正確")
elseif a=100 then
msgbox("老大, 你耍我?")
else
msgbox("錯(cuò)誤")
end if

這次輸入100看看, 是什么? else if語(yǔ)句可以在if結(jié)構(gòu)中多次出現(xiàn), 以靈活判斷不同的情況 (如果你要判斷得太多, 就請(qǐng)使用"選擇結(jié)構(gòu)", 過(guò)會(huì)兒就講), 當(dāng)所有elseif都處理完了,而沒(méi)有符合情況的時(shí)候再執(zhí)行else中的語(yǔ)句.另一個(gè)例子:

Dim a,b,c,d
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
d=Inputbox("答案:","輸入答案")

c=a*2+b*2 '這里沒(méi)有問(wèn)題, 會(huì)自動(dòng)轉(zhuǎn)換
if d=c then
Msgbox("你好聰明")
else
Msgbox("你好豬頭 自己的題還不會(huì)!")
end if

再看看這個(gè), 無(wú)論你回答得多么正確你都是豬頭, 哈哈, 不是我耍你, 還是文章開(kāi)始時(shí)候的inputbox的返回類(lèi)型在耍你, d是inputbox的返回值, 他是一個(gè)字符串, 而c是一次整數(shù)計(jì)算的結(jié)果, 他是一個(gè)整數(shù). 一個(gè)字符串無(wú)論如何也不等于一個(gè)整數(shù), 盡管他們字面上是一樣的:"8" (不等于號(hào))8 所以if的判斷式的值永遠(yuǎn)是false, 總是執(zhí)行else部分的語(yǔ)句. 我們可以這么修改

Dim a,b,c,d
a=inputbox("a是:","輸入半徑")
b=Inputbox("b是:","輸入半徑")
d=Inputbox("答案:","輸入答案")
d=int(d)
'在這里我們?nèi)〕隽薲的值, 變成整數(shù), 在放回"d"這個(gè)盒子里
c=a*2+b*2
if d=c then
Msgbox("你好聰明")
else
Msgbox("你好豬頭 自己的題還不會(huì)!")
end if

這樣就成功了. 這也是Inputbox函數(shù)的一個(gè)討厭的地方, 沒(méi)辦法, vbs沒(méi)有其他好的輸入方式了.

說(shuō)到if, 我們不得不說(shuō)一說(shuō)邏輯運(yùn)算符, 今天介紹兩種, "and" 和 "or" 學(xué)會(huì)了if語(yǔ)句之后, 我舉一個(gè)例子, 你一看就明白了.

dim a,b
a=inputbox("輸入一個(gè)數(shù) 10")
b=inputbox("輸入另一個(gè)數(shù) 10")
a=int(a)
b=int(b)
if a 10 and b 10 then
msgbox("正確")
else
msgbox("錯(cuò)誤")
end if

這段程序讓你輸入兩個(gè)值, 必須都大于10, 只要有一個(gè)不大于, 就輸出錯(cuò)誤

dim a,b
a=inputbox("輸入一個(gè)數(shù) 10")
b=inputbox("輸入另一個(gè)數(shù) 10")
a=int(a)
b=int(b)
if a 10 or b 10 then
msgbox("正確")
else
msgbox("錯(cuò)誤")
end if


這段程序讓你輸入兩個(gè)值, 只要有一個(gè)大于10, 就返回成功. 其實(shí)and和or很好理解, 我讀"if a 10 or b 10 then" 這一句, 用華語(yǔ)是這樣:"如果a大于10或者b大于10, 那么...". 這樣是不是就很好理解了呢.

OK, 我們?cè)賮?lái)看一種新結(jié)構(gòu), 今天的課就結(jié)束, 已經(jīng)午夜了, 我都累死了.

當(dāng)你的程序要處理很多種不同的判斷情況的時(shí)候elseif..then會(huì)讓程序看起來(lái)很雜亂, 所以就有了一種select case結(jié)構(gòu)專(zhuān)門(mén)對(duì)付這種情況, select case的語(yǔ)法結(jié)構(gòu)很簡(jiǎn)單:

select case 變量名
case 值
語(yǔ)句
case 值
語(yǔ)句
case else
語(yǔ)句
end select


我們舉個(gè)例子就能很簡(jiǎn)單的說(shuō)明:

dim a
a=inputbox("輸入一個(gè)1--3的值")
a=int(a) '處理inputbox返回字符串的問(wèn)題
select case a
case 1
msgbox("壹")
case 2
msgbox("貳")
case 3
msgbox("叁")
case else
msgbox("輸入錯(cuò)誤")
end select

這個(gè)例子把1,2,3這三個(gè)阿拉伯?dāng)?shù)字轉(zhuǎn)化成中國(guó)大寫(xiě)數(shù)字, 這個(gè)程序?qū)懗蒳f...elseif 的形式如下

dim a
a=inputbox("請(qǐng)輸入1--3的值")
a=int(a)
if a=1 then
msgbox("壹")
elseif a=2 then
msgbox("貳")
elseif a=3 then
msgbox("叁")
else
msgbox("輸入錯(cuò)誤")
end if

怎么樣, 麻煩吧, 還是select好吧.

OK, 今天到此結(jié)束, 總結(jié)一下:


要點(diǎn):

1) inputbox返回的是一個(gè)字符串, 而不是一個(gè)數(shù), 必須用a=int(a)這種形式轉(zhuǎn)化成數(shù)

2) bool變量的值只有兩種:true,false

2.5) and兩邊的表達(dá)式都是true, 則返回true. or兩邊的表達(dá)式有一個(gè)是true, 就返回true

3) if 語(yǔ)句的格式

4) select...case的格式


作業(yè):

1) 使用3個(gè)bool值, 儲(chǔ)存你的3兄弟姐妹是否是男性 (提示:sister1male=false)

2) 給定一個(gè)個(gè)數(shù), 大于10而且小于20輸出"正確", 否則輸出"錯(cuò)誤"

3) 輸入12,或者15, 輸出"正確", 否則輸出"錯(cuò)誤"

4) 把5以?xún)?nèi)的正整數(shù)都轉(zhuǎn)換成中國(guó)大些數(shù)字

5) 自己隨便設(shè)計(jì)一個(gè)程序, 應(yīng)用今天的知識(shí)
html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 定陶县| 仁布县| 兴安县| 贡嘎县| 阳曲县| 梅州市| 托克托县| 三门县| 怀柔区| 太白县| 海城市| 舒城县| 庐江县| 揭东县| 延吉市| 舒城县| 遂昌县| 论坛| 石柱| 大名县| 平陆县| 新宾| 肇庆市| 安丘市| 花垣县| 灌阳县| 荥经县| 太和县| 泌阳县| 密云县| 镇沅| 宜兰市| 金山区| 泰顺县| 贵溪市| 油尖旺区| 武威市| 冷水江市| 揭西县| 揭西县| 新宁县|