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

首頁 > 編程 > VBScript > 正文

VBS基礎編程教程 (第4篇)

2020-07-26 11:59:42
字體:
來源:轉載
供稿:網友
四篇(共六篇): 
大家好, 昨天我休息了一天, 所以今天寫第4章:循環結構 

  我們先來看一道題:商場進行每日結算, 要求累加出今天的營業額, 每次輸入一個數, 這道題其實很簡單, 但就我們現在學 

過的知識要完成這道題相當麻煩, 我們來分析一下. 首先, 我們需要知道買賣的次數, 這樣才能控制輸入的次數,但是, 這種設 

計是非常低效的, 每天都要重新設計程序. 假定今天進行了5次交易, 以下是源程序: 

dim sum 
sum=0 '初始化變量 
sum=sum + int(inputbox("請輸入交易額")) 
'sum=sum+x 這種形式是把本身的值取出來, 進行一次運算, 再放回本身, 這種方法很有用處 
'這里使用了函數嵌套, 把inputbox的返回值直接傳給int函數, 轉化成整數, 下同 
sum=sum + int(inputbox("請輸入交易額")) 
sum=sum + int(inputbox("請輸入交易額")) 
sum=sum + int(inputbox("請輸入交易額")) 
sum=sum + int(inputbox("請輸入交易額")) 
msgbox(sum) 

  看到了嗎, 我通過把計算過程復制了5遍才設計好了程序, 這種程序在汽車交易所等交易次數少的地方還能湊合著用, 如果 

放到超市豈不是要復制, 粘貼幾千遍? 我們今天講的內容就可以克服這種缺陷, 首先, 我們來講以下Do...Loop語句. 

  do...loop的結構看上去非常簡單, 就是:do...loop, 僅此而已, 這個結構不斷執行do和loop之間的語句(學名叫:循環體), 
永不停止. 舉個例子來說: 

do 
    msgbox("這個信息會不斷重復出現, 要停止程序請使用任務管理器(Ctrl+Alt+Del)中止wscript進程") 
loop 

  運行這個程序, 當你點銷掉一個對話框馬上會出來另一個, 你永遠點不完, 總有下一個. 誰會運行這樣的程序? 除非是給 

別人搗亂(我就干過這種事), 所以在do..loop結構中還有一個語句:exit do, 這個語句將終止循環, 跳到loop后面的語句繼續 

執行. 據個例子來說: 

dim a '注意:常量不需要在dim里面聲明,否則會引發錯誤 
const pass="123456" '這是一個字符串 請用""包裹起來. 設定密碼為常量, 不可變更 
do 
    a=inputbox("請輸入密碼") 
    if a=pass then 
         msgbox("密碼校驗成功") 
         exit do 
    end if 
loop 

  這個程序會一直不停的問你密碼, 知道你輸入了正確的密碼為止.(if可以嵌套在另一個if當中, 也可以嵌套在循環體當中 

, 所以一定要用縮進, 來分清楚程序的各個部分). 這個程序是很經典的, 早期的程序都是這么做的. 但是我們是Hacker, 所以 

我們了解系統的安全性, 這種無限次認證程序很容易被窮舉破解, 我們要來限定認證的次數. 修改程序如下 

dim a,ctr 
ctr=0 '設置計數器 
const pass="pas123_" '上面的那個是弱密碼, 這次改的強一點 
do 
    if ctr=3 then 
        msgbox("已經達到認證上限, 認證程序關閉") 
        exit do 
    else 
        a=inputbox("請輸入密碼") 
        if a=pass then 
            msgbox("認證成功") 
            msgbox("(你可以在這里加一段成功后得到的信息)") 
            exit do 
        else 
            ctr=ctr+1 '如果密碼出錯就增加一次錯誤認證計數 
            msgbox("認證出錯, 請檢查密碼") 
        end if 
     end if 
loop 

  運行這個程序試試看, 當你出了3此錯誤以后, 就會停止再次詢問密碼, 關閉程序. telnet認證用來限制次數的程序與此大 

同小異. 要注意的是嵌套的if語句, 清仔細讀一下這個程序, 可能比較難懂, 也請你試著自己設計一下類似的程序. 

  其實, 要在do...loop加上驗證的功能, 并不一定要用if, 我們可以直接利用do. 我來介紹一下while關鍵字, while可以放 
在do或者是loop后面, 然后再接一個表達式, 當表達式的值為true的時候(表達式成立),才運行循環體.我們來看一下修改后的 
程序" 

dim a,ctr 
ctr=0 
const pass="pas123_" 
do while ctr<3 
    a=inputbox("請輸入密碼") 
    if a=pass then 
        msgbox("認證成功") 
        msgbox("(你可以在這里加一段成功后得到的信息)") 
        exit do 
    else 
        ctr=ctr+1 '如果密碼出錯就增加一次錯誤認證計數 
        msgbox("認證出錯, 請檢查密碼") 
    end if 
loop 

  這樣實現的功能和上一個例子完全一樣, 我們再來看看把while放在loop后面: 

dim a,ctr 
ctr=0 
const pass="pas123_" 
do 
    a=inputbox("請輸入密碼") 
    if a=pass then 
        msgbox("認證成功") 
        msgbox("(你可以在這里加一段成功后得到的信息)") 
        exit do 
    else 
        ctr=ctr+1 '如果密碼出錯就增加一次錯誤認證計數 
        msgbox("認證出錯, 請檢查密碼") 
    end if 
loop while ctr<3 

  功能是一樣的, 為什么要放在loop后面呢? 你把ctr的值改成3就知道了, while在do后面的程序會直接退出, 而在loop后面 

還會允許一次認證, 到了loop才結束.和while相反的是until, 用法和while一樣, 不過他只有當后面的表達式的值為false(表 

達式不成立)的時候才執行循環體, 請自己試驗一下 

  ok, 我們來看另外一種循環結構,for....next, 這種循環結構是基于計數的, 也是在編程中最常見到的循環結構. 

dim i 
for i=0 to 5 
    msgbox(i) 
next 

  看到了嗎?每次輸出的i都是遞增的, 但我們沒有明確指出i要遞增, 當i達到5的時候, 循環就結束了, 因為由0開始, 所以 

循環體執行了6次, 這一點很重要, 大部分東西都是從0開始而不是1. 這個程序也可以寫成 

do的形式: 

dim i 
i=0 
do while i<5 
    msgbox(i) 
    i=i+1 '因為do不能自動計數, 必須手動加 
loop 

  怎么樣, 還是for比較好用吧. for在編程中很有用途, 我們再舉一個例子, 順便講一下嵌套循環. 

dim i,j 
for i=1 to 9 
    for i=1 to 9 
       str=str & i * j & " " '&是和并字符串的符號 
    next '每個next對應一個for 
next 

  看看運行結果, 是否令你會想起小學時代的數學老師(丑陋的嘴臉). 要注意, 這里有一個"大"的for, 和一個小的for, 當 

小的for執行完一個周期以后, 大的for才執行一次(換句話說, 大的for執行一次, 小的要執行9次), 所以一共執行了九九八十 

一次. 在大的for里可以不僅僅是一個小的for, 也可以加上另外的語句. 我們來修改一下源程序: 

dim i,j 
for i=1 to 9 
    for i=1 to 9 
       str=str & i * j & " " 
    next '每個next對應一個for 
    str=str & vbCrlf 'vbCrlf相當于鍵盤上的回車鍵,因為你不能在鍵盤上輸入,所以系統定義了一個默認的常量 
next 

  這次運行完成以后, 輸出結果按照乘數進行了分割, 每小for運行完一次, 就換一行(通過vbcrlf). 

  這次的內容對菜鳥可能比較難懂, 掌握的辦法只有一個:多實踐. 另外, 我在論壇看到很多人還是問:"VBScript要用什么工 

具編?"我就很氣憤, 我在第一篇里面已經說明:用記事本編輯源代碼, 然后保存為以.vbs為擴展名的程序就可以了, 請大家不要 

再問. 另外, 國產的一種垃圾軟件"超級X霸"搶占了vbs這個擴展名, 請把那個垃圾卸載掉. 

  我們總結一下: 

要點: 

1) do..loop和exit do的用法 

2) while當表達式true的時候執行循環體,until反之 

3) for...next是計數循環, 每次執行計數器遞加 

4) 嵌套循環的作用和寫法 

4.5) &用于連接字符串 

5) vbCrLf相當于鍵盤上的回車鍵 


作業: 

1) 在我國的數學經典著作"九章算術"中有這樣一道題:百錢買百雞, 公雞5錢一只, 母雞3錢一只, 小雞1錢2只(這個數據我是參 

考一本編程書的, 但我記得是公3,母1,小1錢3只? 不管了, 就按照書上得來吧)求得是能有多少種辦法買這些雞. 如果看不懂的 

話我用大白話說說:有人要去買雞, 用100塊錢正好買了100只雞, 價格如下:公:5$, 母:3$, 小:1$ for 2, 讓你求一共多少種賣 

法(公母小怎么搭配). 請用循環解決這個問題. 

ps:今天要去移民局辦事, 所以文章寫的很倉促. 大部分代碼都沒有實驗, 請大家幫我找錯. 另外, 上次的作業大家在論壇應該 

看到了, 我就不重復答案了, 不知道大家喜歡做這種題, 還是以前那種比較簡單的? 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区二区久久| 亚洲精品白浆高清久久久久久| 日韩大陆毛片av| 久久露脸国产精品| 久久久久久久久久久免费精品| 成人精品一区二区三区| 欧美激情a在线| 欧美日韩国产精品专区| 日韩最新av在线| 91在线色戒在线| 欧美日本精品在线| 亚洲精品欧美日韩| 一区二区三区无码高清视频| 孩xxxx性bbbb欧美| 国产精品国产三级国产aⅴ9色| 精品视频在线观看日韩| 国产在线精品播放| www.日韩不卡电影av| 久久精品精品电影网| 日韩av在线网| 亚洲人成在线观看| 狠狠干狠狠久久| 国产精品久久久久久久av电影| 深夜福利亚洲导航| 亚洲激情小视频| 亚洲女人天堂成人av在线| 久久久久久成人| 国产精品久久久久福利| 伊人伊人伊人久久| 国产精品美女呻吟| 国产视频精品一区二区三区| 欧美日韩性视频在线| 日韩欧美亚洲一二三区| 色综合天天狠天天透天天伊人| 日韩av免费在线播放| 欧美午夜性色大片在线观看| 国产一区二区视频在线观看| 精品日韩视频在线观看| 亚洲欧美在线一区二区| 欧美成人免费在线观看| 日韩精品在线观看一区| 国产精品偷伦视频免费观看国产| 亚洲欧美日韩国产成人| 国产精品入口福利| 欧美日韩日本国产| 亚洲天堂网在线观看| 国产精品一区二区久久久久| 亚洲女人天堂色在线7777| 日韩大陆欧美高清视频区| 免费91在线视频| 欧美激情一区二区三区在线视频观看| 亚洲免费福利视频| 日本一区二区在线免费播放| 国产精品免费视频xxxx| 2019中文字幕在线免费观看| 一区二区日韩精品| 91免费在线视频网站| 国产噜噜噜噜噜久久久久久久久| 日本久久久久久久久久久| 久青草国产97香蕉在线视频| 黑人巨大精品欧美一区二区| 蜜臀久久99精品久久久久久宅男| 亚洲国产毛片完整版| 91中文精品字幕在线视频| 久久精品免费播放| 国产亚洲欧美日韩一区二区| 欧美国产一区二区三区| 亚洲欧洲一区二区三区在线观看| 91亚洲国产成人精品性色| 成人午夜激情免费视频| 亚洲一区二区精品| 色综合久久中文字幕综合网小说| 欧美亚洲国产视频| 日本欧美在线视频| 精品久久国产精品| 欧美野外wwwxxx| 亚洲精品456在线播放狼人| 国语自产精品视频在免费| 国产一区二区在线播放| 亚洲视频欧洲视频| 久久国产精品99国产精| 久久久噜噜噜久久中文字免| 欧美视频专区一二在线观看| 日韩美女视频免费在线观看| yw.139尤物在线精品视频| 91国自产精品中文字幕亚洲| 精品久久久久久中文字幕一区奶水| 91精品视频在线看| 久久精品亚洲一区| 成人妇女免费播放久久久| 久久精品视频va| 亚洲欧美国产日韩中文字幕| 亚洲国产精品中文| 日韩电视剧在线观看免费网站| 欧美激情日韩图片| 亚洲欧美一区二区三区久久| 色综合亚洲精品激情狠狠| 欧美黑人xxxⅹ高潮交| 日韩av一卡二卡| 久久精品国产成人| 91精品久久久久久久久青青| 一区二区在线视频| 国产日韩一区在线| 久久天天躁狠狠躁夜夜爽蜜月| 成人有码在线视频| 亚洲精品大尺度| 羞羞色国产精品| 亚洲自拍偷拍色片视频| 久久久久久久国产精品| 亚洲午夜未满十八勿入免费观看全集| 国产成人综合精品在线| 日韩电影中文字幕一区| 91久久中文字幕| 国产一区二区三区日韩欧美| 国产日韩欧美一二三区| 亚洲国产日韩精品在线| 亚洲小视频在线| 亚洲第一区在线| 精品国内产的精品视频在线观看| 大量国产精品视频| 国产日本欧美一区二区三区在线| 亚洲区免费影片| 人九九综合九九宗合| 91色视频在线观看| 欧美国产精品日韩| 欧美在线观看网站| 日产精品99久久久久久| 国产一区二区免费| 日韩女优人人人人射在线视频| 久久久人成影片一区二区三区观看| 丝袜亚洲另类欧美重口| 成人h视频在线| 久久久精品久久久| 欧美性猛交xxxx免费看久久久| 成人在线播放av| 中文字幕在线看视频国产欧美在线看完整| 亚洲国产精品视频在线观看| 国产精品夜间视频香蕉| 国产精品成人aaaaa网站| 亚洲第一偷拍网| 国产精品揄拍500视频| 在线看日韩av| 性亚洲最疯狂xxxx高清| 亚洲美女在线看| 中文字幕日韩欧美在线视频| 成人乱人伦精品视频在线观看| 国产精品444| 正在播放亚洲1区| 一区二区欧美亚洲| 亚洲国产一区二区三区在线观看| 日本成人激情视频| 亚洲欧美www| 欧美日韩中文字幕| 欧美日本高清一区| 亚洲在线第一页| 国产精品www网站| 亚洲精品99久久久久中文字幕| 欧美日韩在线免费观看| 欧洲亚洲在线视频| 91精品久久久久久久久久久久久| 亚洲va欧美va在线观看| 97在线看免费观看视频在线观看| 日韩理论片久久| 亚洲欧美日韩另类|