• 第 3 章 VBScript流程控制


    学习导航

    1. if...then...else...end if
    2. select case...select end
    3. for...next
    4. do while ... while wend

    3.1 认识流程控制结构

    我们上一章所用的范例都是一些相当简单的程序。所谓的“简单”就是指程序执行只有一个由上而下的方向,而不会转弯或跳行,但实际上平常所应用的程序并不会这么简单,一般的程序都会依据不同的情况而换行,因为这样的程序才能应付各种不同的情况,这时就需要流程控制结构来帮组设计师控制程序执行的方向。流程控制结构通常要借助逻辑数据的帮助才能运行,流程控制结构共有6种,我们一一来介绍。

    3.2 if的第一种格式:如果...就...(单一选择)

    if 条件 then 程序代码

    这是if指令最简单的格式“单一选择”,其中的“条件”是一个表达式,它所计算的结构必须是一个逻辑数据,如果“条件”的计算结果是“True”,那么就会执行Then后面的“程序代码”;如果“条件”的计算结果是“False”,那么就会跳过整个if语句,而不会执行Then后面的“程序代码”。Then后面的“程序代码”如果跟Then不是同一行或是程序代码有很多行,那就要在最后加上end if以结束if条件语句。

    <script language="vbs">
        score=70
        if score>=60 then msgbox "及格!"
    </script>

    3.3 if的第二种格式:如果...就...否则...(双向选择)

    if 条件 then

      程序代码一

    else

      程序代码二

    end if 

    <script language="vbscript">
        score=InputBox("请输入计算机成绩:","输入成绩")
        if score>=60 then
            msg="及格!"
        else
            msg="不及格!"
        end if
        msgbox "您的计算机成绩" & msg
    </script>

    3.4 输入函数InputBox用法

    变量=InputBox("显示信息","窗口标题")

    InputBox函数可以提供对话框让用户输入信息,并将用户输入的信息存入等号左边的变量中;

    3.5 if的第三种格式:多向选择

    if 条件 then

      程序代码一

    elseif

      程序代码二

    elseif

      程序代码三

      ......

    ......

    else

      程序代码N

    end if

    <script language="vbs">
        score=InputBox("请输入计算机成绩:","输入成绩")
        if score>=90 then
            msg="优等"
        elseif score<90 and score>=80 then
            msg="甲等"
        elseif score<80 and score>=70 then
            msg="乙等"
        elseif score<70 and score>=60 then
            msg="丙等"
        else
            msg="丁等"
        end if
        msgbox "您的计算机成绩为" & msg
    </script>

    3.6 select...case

    这种流程控制结构可以根据一个变量的值而有不同的执行方向。

    select case 变量

      case 值一

          程序代码一

      case 值二

          程序代码二

      case 值三

          程序代码三

      ...

      case else

          程序代码N

    end select

    <script language="vbs">
        no=InputBox("请输入一个1-5之间的数字:","汉译英")
        select case no
            case 1
                msg="ONE"
            case 2
                msg="TWO"
            case 3
                msg="THREE"
            case 4
                msg="FOUR"
            case else
                msg="FIVE"
        end select
        msgbox no & "的英文为" & msg
    </script>

    3.7 for-next (计数循环

    计算机最擅长的功能就是重复执行某项功能,如果每执行一次就要写一次程序代码的话,大部分的程序必然非常的庞大,“循环”指令就是用来解决重复执行的问题。

    for 变量起始值 to 终止值 [step 步长]

    <script language="vbs">
        total=0
        for i=1 to 10
            total=total+i
        next
        msgbox "1加到10的总和为" & total
    </script>
    <script language="vbs">
        total=0
        for i=2 to 100 step 2
            total=total+i
        next
        msgbox "2+4+6+…+100=" & total
    </script>
    <script language="vbs">
        '用循环显示九九表
        document.write "<table border='4'>"
        for i=1 to 9
            total="<tr>"
            for j=1 to 9
                total=total & "<td>" & i & "*" & i & "=" & i*j & "</td>"
            Next
            total=total & "</tr>"
            document.write total
        Next
        document.write "</table>"
    </script>

    注:document.write 是浏览器中的一个方法,在浏览器中有许多对象的属性和方法可供设计人员使用,浏览器将自己本身的各部分,包括窗口、属性、标记等分成各种对象,而每个对象又提供不同的属性和方法。

    <script language="vbs">
        dim a(99)
        for i=0 to 99
            a(i)=i+1
            document.write a(i) & "<br />"
        next
    </script>
    <script language="vbs">
        dim score(3)
        score(0)=90
        score(1)=86
        score(2)=99
        score(3)=54
        '用循环打印每一位学生的成绩
        for i=0 to 3
            msg=msg & "" & i+1 & "个学生分数为" & score(i) & vbcrlf
        next
        msgbox msg
    </script>

    3.8 条件式循环

    do while…loop 循环

    格式: do while 条件

          程序代码

        loop

    这中循环在执行到do while时,会检查”条件”的返回值,若返回值为”True”,就执行”程序代码”,碰到loop时又回到do while再检查”条件”的成立与否.若”条件”的返回值为”False”,则跳到loop的下一个指令(即离开循环).此处的”条件”弹性很大,只要”条件”为”False”时就会结束循环,不必限制循环执行的次数,使用范围比for…next大很多.

    <script language="vbs">
        '英文单词测试,不管大小写都正确
        ans=inputbox("请输入”快乐”的英文")
        do while ucase(ans)<>"HAPPY"
            msg="不正确" & vbcrlf & "请重新输入”快乐”的英文"
            ans=inputbox(msg)
        loop
        msgbox "太棒了!您答对了"
    </script>

    注:ucase()函数可将括号内的字符串全部转换为大写字母

    3.9 Do Until…Loop 循环

    格式: Do Until 条件

               程序代码

            Loop

    Until 循环与While循环不同点就在于,Until是测试”条件”是否不成立,也就是是否为”False”,若是”False”则执行循环内的”程序代码”,反之则跳出循环.

    <script language="vbs">
         '英文单词测试,不管大小写都正确
        ans=inputbox("请输入”快乐”的英文")
        do until ucase(ans)="HAPPY"
            msg="不正确" & vbcrlf & "请重新输入”快乐”的英文"
            ans=inputbox(msg)
        loop
        msgbox "太棒了!您答对了"
    </script>

    3.10 While…Wend循环

    这种循环和Do…Loop完全一样.

    <script language="vbs">
        '英文单词测试,不管大小写都正确
        ans=inputbox("请输入”快乐”的英文")
        while ucase(ans)<>"HAPPY"
        msg="不正确" & vbcrlf & "请重新输入”快乐”的英文"
        ans=inputbox(msg)
        wend
        msgbox "太棒了!您答对了"
    </script>
  • 相关阅读:
    poj 2488 DFS
    畅通工程 并查集模版
    KMP 模板
    poj 1426 DFS
    poj 2528 线段数
    poj 3468 线段数 修改区间(点)
    CVPR2012文章阅读(2)A Unified Approach to Salient Object Detection via Low Rank Matrix Recovery
    如何制定目标
    Saliency Map 最新综述
    计算机视觉模式识别重要会议杂志
  • 原文地址:https://www.cnblogs.com/zfc2201/p/5578940.html
Copyright © 2020-2023  润新知