第七章 visualBasic控制语句

结构化程序设计的基本控制语句有三种,顺序结构,选择结构,循环结构。 这三种还可以派生出多分支结构,根据给定的条件从多个分支路径中选择执行其中的一个。

选择控制语句

简单了解一下 选择控制语句的定义
用途: 对给定的条件进行,分析,判断,根据结果悬着不同的操作。
选择语句通过条件语句来实现,条件语句也叫做if语句,他有两种格式,单行结构和块结构。
## 单行结构
if 条件 then
[Else else]
if 条件为真 则执行 then部分内容 if 条件为假 则执行 Else 部分内容
Else可以省略
嵌套语句就是 在then 部分 和 Else 部分 再加 上 条件语句。
例子:
嵌套规则: 每一个Else 与 未曾被配对的if-Then 配对

块结构选择

if 条件 1 THen
Elif 条件2 Then
Else

End if
注意:
语句块不可以和 then 放在同一行,否则会被认为是单行结构条件语句。

嵌套的时候,记住“包住”

例子 7.1

··在这里插入图片描述

   Dim n As Single
Dim n2 As Single
Dim n1 As Single
Dim total As Single
Dim score As Single
Private Sub Command1_Click()
 msg$ = "请输入分数(-1 结束)"
 msgtitle$ = "请输入数据"
start:
 score = InputBox(msg$, msgtitle$)
 If score < 0 Or score > 100 Then
    GoTo Finish
 Else
    total = total + score
    n = n + 1
    If score < 60 Then
    n1 = n1 + 1
    Else
    n2 = n2 + 1
    End If
End If
GoTo start
Finish:
End Sub

Private Sub Command2_Click()
Text1.Text = Str$(n2)
Text2.Text = Str$(n1)
Text3.Text = Str$(total / n)
End Sub

Private Sub Command3_Click()
n = 0: n1 = 0: total = 0
End
End Sub

Private Sub Form_Load()

End Sub

IIF函数
执行简单的条件判断,
IIF(条件,True部分,False部分)

多条件分支

格式
Select Case 测试表达式
Case 表达式1
语句块
Case 表达式2
语句块
Case 表达式
语句块
Case Else
语句块
end Select

关键词 TO 用来指定: 一个范围,必须把较小的值写到前面,较大的值写到后面

Sub Form_Click()
   msg = "Enter Data"
   var = InputBox(msg)
   Select Case var 
          Case 1 
                Text1.Text = "1"
           Case 2 
                 Text2.Text = "2"
           Case 3 
                 Text1.Text = "3"
            Case 4
                 Text1.Text = "4"
             Case 5
                  Text1.Text = "5"
              Case Else
                  Text1.Text = "Good Bye"
             End Select
      End Sub

说明: 先对“测试表达式”求值,然后再与Case 子句中的“表达式表列”相匹配,

表达式表列 有三种形式

  1. To
  2. Is
  3. Case 2,4,6,8
  4. 混用
Case Is < 5
Case Is > 10 And Is < 20   erro  Is 只能是最简单的条件
Case Is>Lowerbound,5,6,7,12,Is<uperbound
Case Is<"HAN","MAN","TO","Tao"

Sub Form_Click()
 msg$ = "Enter Data"
 var = InputBox(msg$)
 if var = 1 Then
     Print "One"
 Elif var = 2 Then
     Pirnt "Two"
Elif var = 3 Then
    Pirnt "Three"
 Else
    Print "Must be integer from 1 to 3"
 End if   
End Sub

改成多分支控制语句

Sub Form _Click()
     msg$ = "Enter Data"
     var = InputBox(msg$)
     Select Case var
              Case 1
                   Print "One"
              Case 2
                  Print "Two"
              Case 3
                  Print "Three"
               Case Else
                   Print "Must be integer form 1 to 3"
            End Select
         End Sub

说明
同一个值域范围中,只执行复合条件中的Case的第一个
Case子句不可矛盾,

   Private Sub Form_Click()
Dim Msg, UserInput
Msg = "Please enter a letter or number form 0 through 9."
UserInput = InputBox(Msg)
If Not IsNumeric(UserInput) Then
If Len(UserInput) <> 0 Then
    Select Case Asc(UserInput)
          Case 65 To 90
               Msg = "daxie zhimu"
               Msg = Msg & Chr(Asc(UserInput)) & "'."
          Case 97 To 122
               Msg = "小写之母"
               Msg = Msg & Chr(Asc(UserInput)) & "'."
          Case Else
               Msg = "You did not enter a letter or a number"
  End Select
End If
Else
Select Case CDbl(UserInput)
     Case 1, 3, 5, 7, 9
       Msg = UserInput & " is an odd number"
     Case 0, 2, 4, 6, 8
       Msg = UserInput & " is an even number"
     Case Else
       Msg = "You entered a number outside"
       Msg = Msg & "the requested range"
End Select
End If
MsgBox Msg
End Sub

在这里插入图片描述
IsNumeric 函数 判断是不是数值

For循环
先看例子

to = 0 
   Fo  I = 2 to 10 step 2
   t = t+1
Next I

说明规则
一目了然
1. I 是循环变量 必须 和 Next(循环终端语句) 后面的 变量相同
2. 2 to 10 初始值 to 终值
3. step后面是步长,可以是正数 负数 不能为0 不写 默认为1
注意, 为负数的时候,初值要大于终值,否则程序不会执行
过程

  1. 把初始值赋给I

  2. 把i和终值进行比较,诺I>终值, 调到5 ,否则执行 循环体

  3. 执行循环体,I 增加一个步长

  4. 返回2执行

  5. 执行Next 后面的 语句

  6. 嵌套
    不可以骑跨。
    循环变量唯一

  for j = ....
      for i = ...
         for a =... 
         Next a
      Next i   
   Next j
   right
     for j = ....
      for i = ...
         for a =... 
         Next 
      Next    
   Next 
   right
        for j = ....
      for i = ...
         for a =... 
    Next a,i,j
    right
    

循环变量 如果在循环体中被引用,我们把循环变量称作操作变量
不被引用的循环变量叫做形式变量
循环变量引用较多的时候,会影响程序 的清晰性

Sub Form_Click()
   Dim N As Integer
   N = InputBox("Enter X")
   k = 1  
   For i = 1 To N
      k = k * i 
   Next i 
   Print N;"!=";k   
End Sub

;连接变量
这里的i为操作变量
省略 step

Dim N As Integer
N = InputBox("Enter N:")
k = 1:m =1
For i = 1 To N
   k = k * m: m = m+1
Next i
Pirnt N;"!=";k
正常结束,循环变量到达终值,但是有些时候,需要退出循环

For i = 1 to 100
   For j = 1 to 100
      Print i + j
      if i*j>5000 Then Exit For
    Next j,i
    

显然 Exit For 用于退出循环
在这里插入图片描述

当循环控制

先看例子

   while b>0
        c = c + a
        b = b - 1
   Wend
   

当循环可以指定以个循环终止的条件,For循环只能指定次数的重复,
当循环适用与,根据数据的某个条件是否出现来控制循环
在这里插入图片描述

## 说明 1. while循环先对,条件进行判断 ,只有条件为真的时才执行循环,条件从一开始就不成立,那么一次都不执行
              2. 如果while循环总是成立,就不停的执行循环
              3. 循环可以嵌套, wend 与最近的while匹配
              
Dim n As Integer 
n = InputBox("请输入一个数(>=3)")
s = 0 
For m = 2 To n/2
   if n Mod m = 0 Then
      s = 1
      Exit For 
 Next m 
if s = 0 Then
  Print n;"是一个素数"
Else
  Print n;"不是素数"
End if 

Do循环

先看例子

Private Sub Commandn_Click()
 I = 0 
 Print "*******LOOP start***********"
 Do 
     Print "Value o f I is ";I
     I = I + 1
 Loop While I < 10 
 Print "*************Loop OVer**************" 
 Print "Value of I at the end of loop is ",I
End Sub

Do…Loop while
Do…Loop Until
Do while …loop
Do Until …loop
Do …loop
Exit Do t跳出循环

多重循环


在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值