濮阳杆衣贸易有限公司

主頁 > 知識庫 > VBS基礎(chǔ)編程教程 (第3篇)

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

熱門標(biāo)簽:機器人打電銷適用于美業(yè)嗎 上海辦理400電話選號 企業(yè)400電話辦理價錢低 天津智能外呼系統(tǒng)排名 龍巖400電話申請 墨西哥地圖標(biāo)注app 智云億呼電話機器人 外呼系統(tǒng)群 外呼系統(tǒng)說話聲音小怎么辦
第三篇(共六篇): 
首先, 我來解決一下上次課程的幾個疑問 

第一, 那個余數(shù)問題, 16 / 5 = 3...1, 是因為我改過前面的部分, 后面的忘了改了, 不好意思. 

第二, 請看一下程序清單: 

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

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

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

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

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

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

  大家是不是覺得這個課程有點枯燥, 呵呵, 變量和運算符部分的確是這樣的, 不過多多練習(xí)也就好了, 這次, 我們寫寫真正好玩的東西: 流程控制語句. 這個部分開始才是真正的編程. 

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

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

dim a,b 
a=true 
b=false 

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

  回到if語句上來, 我們先來看看簡化版的if語句:if 判斷式 then 語句體 我們來看一個例子: 

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

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

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

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

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

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

還有一個更簡單的 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

  OK, 我們再來看一種新結(jié)構(gòu), 今天的課就結(jié)束, 已經(jīng)午夜了, 我都累死了. 

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

    select case 變量名 
    case 值 
     語句 
    case 值 
        語句 
    case else 
        語句 
    end select 


  我們舉個例子就能很簡單的說明: 

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

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

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

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

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


要點: 

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

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

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

3) if 語句的格式 

4) select...case的格式 


作業(yè): 

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

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

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

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

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

標(biāo)簽:錫林郭勒盟 齊齊哈爾 麗水 鄂爾多斯 青島 承德 黃山 阜新

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBS基礎(chǔ)編程教程 (第3篇)》,本文關(guān)鍵詞  VBS,基礎(chǔ),編程,教程,第,3篇,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《VBS基礎(chǔ)編程教程 (第3篇)》相關(guān)的同類信息!
  • 本頁收集關(guān)于VBS基礎(chǔ)編程教程 (第3篇)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    樟树市| 郴州市| 梁河县| 灵石县| 竹山县| 淮南市| 百色市| 宁乡县| 平顶山市| 兰溪市| 古交市| 綦江县| 玉环县| 巨鹿县| 岳池县| 和龙市| 古交市| 射阳县| 宜兰市| 朝阳县| 龙岩市| 福鼎市| 潼南县| 平果县| 万源市| 宜宾市| 尼木县| 元阳县| 汉阴县| 伊宁市| 贵定县| 隆德县| 南充市| 青阳县| 神池县| 崇左市| 洛扎县| 石城县| 邻水| 炉霍县| 民和|