亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

VBS編程教程 (第3篇)

2020-06-26 18:10:09
字體:
來源:轉載
供稿:網友
第三篇(共六篇):

首先, 我來解決一下上次課程的幾個疑問  

第一, 那個余數問題, 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  

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

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

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

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

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

  首先介紹判斷結構.  

  在此之前, 我們先介紹一種簡單的變量類型:布爾值(Boolean), 這種變量只有兩個可能值:True,Flase,即真或假. 這種變量在某些情況下很有用(比如"開關"). 我們定義一個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)則執行then后面的語句, 如果是假, 則不執行, 你把a的值改成14看看還會不會彈出對話框?  

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

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

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

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

還有一個更簡單的  

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

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

  嘿嘿, 我是變態者, 現在我要你處理三種情況, <100,=100,>100, 還要寫在一個if結構里, 你怎么辦, 我給你答案:  

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

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

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

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

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

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

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

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

dim a,b  
a=inputbox("輸入一個數 >10")  
b=inputbox("輸入另一個數 >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("輸入一個數 >10")  
b=inputbox("輸入另一個數 >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, 我們再來看一種新結構, 今天的課就結束, 已經午夜了, 我都累死了.  

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

    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這三個阿拉伯數字轉化成中國大寫數字, 這個程序寫成if...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, 今天到此結束, 總結一下:  


要點:  

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

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

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

3) if 語句的格式  

4) select...case的格式  


作業:  

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

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

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

4) 把5以內的正整數都轉換成中國大些數字  

5) 自己隨便設計一個程序, 應用今天的知識  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线免费av| 久久久久99精品久久久久| 色偷偷av亚洲男人的天堂| 福利一区福利二区微拍刺激| 欧美激情va永久在线播放| 成人免费淫片视频软件| 俺也去精品视频在线观看| 91久久夜色精品国产网站| 久久久久久国产免费| 国内自拍欧美激情| 久色乳综合思思在线视频| 久久久久久久97| 91最新国产视频| 97色在线观看免费视频| 亚洲欧美在线看| 国产精品免费一区豆花| 久久久久久久久网站| 欧美激情久久久| 2023亚洲男人天堂| 精品人伦一区二区三区蜜桃网站| 日韩电影中文字幕av| 久久九九热免费视频| 欧美日韩免费一区| 伊人青青综合网站| 日韩黄色av网站| 色老头一区二区三区在线观看| 中文字幕v亚洲ⅴv天堂| 国产精品高清在线观看| 原创国产精品91| 日本sm极度另类视频| 国产精品jizz在线观看麻豆| 日韩毛片在线观看| 国产精品久久久久久久久久新婚| 国产视频在线观看一区二区| 尤物九九久久国产精品的特点| 国产美女精品视频| 国产精品直播网红| 亚洲国产日韩欧美综合久久| 久久人人看视频| 久久亚洲综合国产精品99麻豆精品福利| 日韩在线观看免费全集电视剧网站| 久久综合国产精品台湾中文娱乐网| 国产精品成人久久久久| 亚洲一品av免费观看| 欧美国产极速在线| 中文字幕亚洲一区在线观看| 日本乱人伦a精品| 久久99久国产精品黄毛片入口| 国产一区二区三区在线播放免费观看| 国产亚洲欧洲黄色| 亚洲人成在线一二| 91久久久久久久久久久| 欧美日本精品在线| 国产精品视频一区二区高潮| 国产精品久久久久久久7电影| 日韩经典中文字幕| 久久久久成人精品| 欧美色视频日本高清在线观看| 国产精品美女在线观看| 亚洲一区www| 国产精品久久久久久久久久东京| 人妖精品videosex性欧美| 成人有码视频在线播放| 自拍偷拍免费精品| 538国产精品一区二区在线| 日韩av大片免费看| 欧美日韩国产在线| 一区二区三区四区视频| 国产精品欧美风情| 国产精品极品尤物在线观看| 91a在线视频| 亚洲人成网站免费播放| 欧美性猛xxx| 亚洲精品中文字幕有码专区| 青草热久免费精品视频| 欧美极品少妇与黑人| 国产精品美女主播在线观看纯欲| 国产精品综合久久久| 久久国产精品久久久久久久久久| 宅男66日本亚洲欧美视频| 97久久精品人人澡人人爽缅北| 亚洲国产成人一区| 在线视频欧美性高潮| 日韩精品中文在线观看| 91成人性视频| 日韩免费观看在线观看| 国产精品嫩草影院一区二区| 91夜夜未满十八勿入爽爽影院| 久久青草精品视频免费观看| 日韩网站在线观看| 美乳少妇欧美精品| 亚洲欧美国产制服动漫| 欧美猛交ⅹxxx乱大交视频| 欧美一区二粉嫩精品国产一线天| 日韩大胆人体377p| 97人洗澡人人免费公开视频碰碰碰| 国产精品中文久久久久久久| 亚洲韩国日本中文字幕| 中文字幕亚洲一区二区三区五十路| 国产一区二区欧美日韩| 亚洲精品视频播放| 成人午夜高潮视频| 亚洲成人激情小说| 亚洲人成在线一二| 国产精品一二三视频| 久久69精品久久久久久国产越南| 亚洲毛片在线免费观看| 国产欧美韩国高清| 国产香蕉精品视频一区二区三区| 国产亚洲欧美日韩精品| 日韩成人在线播放| 国产成人福利夜色影视| 久久免费视频网| 国产成人啪精品视频免费网| 性欧美激情精品| 成人久久久久久久| 97久久超碰福利国产精品…| 国产精品稀缺呦系列在线| 国产欧美精品xxxx另类| 国产精品va在线播放我和闺蜜| 国产精品色婷婷视频| 国产不卡一区二区在线播放| 亚洲精品色婷婷福利天堂| 国产男女猛烈无遮挡91| 精品视频偷偷看在线观看| 中文综合在线观看| 中文字幕日韩欧美在线视频| 久久久免费观看视频| 久久久精品日本| 亚洲人a成www在线影院| 中文字幕一精品亚洲无线一区| 午夜精品在线视频| 久久青草精品视频免费观看| 日韩在线视频导航| 亚洲成人网在线| 国语自产精品视频在线看| 亚洲色图五月天| 欧美日韩国产在线看| 欧美激情网站在线观看| 国产在线播放不卡| 日韩av最新在线| 亚洲成人久久一区| 亚洲综合色激情五月| 一区二区中文字幕| 亚洲福利在线观看| 国产在线日韩在线| 91香蕉嫩草神马影院在线观看| 亚洲夜晚福利在线观看| 欧美高清视频在线播放| 亚洲影院色在线观看免费| 国产精品欧美久久久| 视频在线观看99| 国产在线视频91| 欧美日韩一区二区三区在线免费观看| 97超碰蝌蚪网人人做人人爽| 亚洲欧美国产va在线影院| 欧洲美女7788成人免费视频| 国产精品亚洲片夜色在线| 亚洲精品免费在线视频| 久久久久国产精品www| 国产精品网站视频| 最好看的2019年中文视频| 精品亚洲精品福利线在观看| 成人黄色免费网站在线观看|