第 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>
时间: 2024-12-07 14:33:14

第 3 章 VBScript流程控制的相关文章

第四章 Shell流程控制

流程控制是改变程序运行顺序的指令. 4.1 if语句 4.1.1 单分支 if 条件表达式; then     命令 fi 示例: #!/bin/bash N=10 if [ $N -gt 5 ]; then     echo yes fi # bash test.sh yes 4.1.2 双分支 if 条件表达式; then     命令 else     命令 fi 示例: #!/bin/bash N=10 if [ $N -lt 5 ]; then     echo yes else   

第三章 程序流程控制

3.1 程序流程控制 判断结构 选择结构 循环结构 3.1.1 判断结构 if语句 三种格式: 1. if(条件表达式){ 执行语句: } 2. if(条件表达式){ 执行语句: } else { 执行语句: } 3. if(条件表达式){ 执行语句: } else if(条件表达式){ 执行语句: } ...... else{ 执行语句: } if控制的语句只有一条,可以不要{}:也就是说,如果if没有{},它只控制离它最近的那条语句. 3.1.2 选择结构 switch语句 switch(表

第3章 程序流程控制

1.三种基本技术可以改变程序的控制流程:调用方法.选择.循环. 2.有四种类型的布尔逻辑:和.或.异或.非. 3.异或:如果a.b两个值不相同,则异或结果为1.如果a.b两个值相同,异或结果为0. 4.单个“&”.“|”符号将使两个布尔表达式都被检查.u 5.switch语句中检测的变量只能是32位或者更小的整数值,也就是说只能是byte.short.int.char(JDK7.0以后,变量可以是String类型). 6.case后的值必须是与switch中的变量相同的数据类型,必须是常量或字面

Java私人学习笔记——第3章 程序流程控制

3.1 分支结构 3.1.1 if语句结构 if( ){ }else{ } 3.1.2 条件运算符 condition ? expr1 : expr2 3.1.3 switch语句结构 switch( ){ case value1: ...           [break;] case value2: ...           [break;] case value3: ...           [break;] } 3.2 循环结构 3.2.1 while循环结构 while(boole

第三章 python流程控制

第一节    分支结构 if  else 1)if语句: - Python的if语句类似其他语言.if语句包含一个逻辑表达式,使用表达式比较,在比较的结果的基础上作出决定. - if expression: statement(s) 注:Python使用缩进作为其语句分组的方法,建议使用4个空格代替缩进 下面这段代码是我们没有采用缩进的形式,在执行的时候出现的报错   1 #!/usr/bin/python   2   3 if 1<2:   4 print "ok" [emai

第04章 程序设计中的流程控制

/**第四章 程序设计中的流程控制 @选择语句 形式一:if(条件表达式) 单条语句; 形式二:if(条件表达式){ 语句体;} 形式三:if(条件表达式){ 语句体;}else{ 语句体;} 形式四:if(条件表达式){ 语句体;}else if{ 语句体;} 形式五:if(条件表达式){ 语句体;}else if{ 语句体;}else{ 语句体;}=========================================================================

Welcome to Swift (苹果官方Swift文档初译与注解二十七)---189~198页(第四章-- 流程控制)

Switch 一个switch语句里包含一个值,并且用这个值与其他几个可能的匹配模式进行比较,然后根据成功匹配上的模式,执行相应的代码块.switch语句提供了比if语句更多的选项来相应多种潜 在的情况. 最简单的一个例子: switch some value to consider { case value 1:   respond to value 1 case value 2, value 3:   respond to value 2 or 3 default:   otherwise,

Welcome to Swift (苹果官方Swift文档初译与注解二十八)---199~208页(第四章-- 流程控制)

Value Bindings (绑定值) 在switch的case中可以绑定一个或者多个值给case体中的临时常量或者变量,这个成为绑定值. 代码样例: let anotherPoint = (2, 0) switch anotherPoint { case (let x, 0):   println("on the x-axis with an x value of \(x)") case (0, let y):   println("on the y-axis with

Welcome to Swift (苹果官方Swift文档初译与注解二十九)---209~218页(第四章-- 流程控制)

Break break语句会立刻结束整个流程控制的执行.break语句可以在switch语句或者循环语句中帮助你提前结束循环或者switch的执行. Break in a Loop Statement  (循环语句中的break) 当在循环语句中使用break,会立刻结束循环的执行,并且跳转到循环体之后的第一行代码.循环不会再遍历执行了. Break in a Switch Statement (switch语句的break) 当在switch语句中使用break,break会立刻结速switc