VisualFreeBasic代码_程序执行流程

2026-1-21 / 0 评论 / 65 阅读

执行代码时,是从 第1行执行到最后1行,这就是程序,按照顺序执行,而下面的语句可以改变代码执行的位置,才使程序有了灵魂,好像有“智能”一样,虽然这个“智能”是代码设定好的,但也让大家把计算机称为电脑。

if ... Then 条件分支语句

根据条件判断,然后执行相关代码

   Dim aa As Long = 100
   If aa = 100 Then 
       Print "aa=100"
   Else
      Print "aa<>100"
   End If 

如果执行的代码就一行的,我们可以用单行模式

   Dim aa As Long = 100
   If aa = 100 Then Print "aa=100" Else Print "aa<>100"

还可以多个条件判断

   Dim aa As Long = 100
   If aa = 100 Then 
      Print "aa=100"
   ElseIf aa = 50 Then
      Print "aa=50"
   ElseIf aa = 60 Then
      Print "aa=60"
   Else
      Print "其它情况"
   End If

还有多条件判断

   Dim aa As Long = 100, bb As Long = 50
   If aa = 100 Or bb = 50 Then Print "aa=100 或者 bb=50"

If ... Then 之间,属于条件判断,也可以进行逻辑判断,还可以写复杂的表达式

If  123*58+55= 33 And 1/55<>rnd Then ****

其中涉及到的 +-*/ 算术运算符,And Or 等逻辑运算符,请参考运算符篇

多条件选择 Select

某些特殊的多条件,使用 if ... Then 的代码比较麻烦,因此在这个基础上扩展出 Select 语句

   'If...Then 的写法
   If aa = 1 Then
      Print 1
   ElseIf aa = 2 Then
      Print 2
   ElseIf aa = 3 Then
      Print 3
   Else
      Print 4
   End If
   'Select 的写法,和 If...Then 功能相同,但Select人类看代码比较舒服。
   Select Case aa
      Case 1
         Print 1
      Case 2
         Print 2
      Case 3
         Print 3
      Case Else
         Print 4
   End Select

还有特殊写法

   Select Case aa
      Case 1, 3, 4 '多个条件写法
         Print 1
      Case 2 : Print 2 '单行写法
      Case 3 To 10 '范围写法
         Print 3
   End Select

For..Next 范围循环

有些代码,需要重复执行,就会用到循环语句

   Dim i As Long 
   For i = 1 To 10    '表示 i 从 1 开始 ,循环到 10  ,i 值每循环1次增加 1
      Print i            '循环执行的代码
   Next 

循环还可以指定每次增加的量

   Dim i As Long 
   For i = 1 To 10  Step 2   '表示 i 从 1 开始 ,循环到 10  ,i 值每循环1次增加 2
      Print i            '循环执行的代码
   Next 
结果:1,3,5,7,9

还可以从大到小循环

   Dim i As Long 
   For i = 10 To 1 Step -1  '从10开始,循环到1,每次 -1
      Print i
   Next 

循环变量,可以直接写在循环语句里,不需要Dim 定义

   For i As Long  = 10 To 1 Step -1
      Print i
   Next 

有时候需要根据条件,直接退出循环

   For i As Long = 10 To 1 Step -1
      If i = 5 Then Exit For '条件成立,跳出循环,跳到 Next 的下一行执行
      Print i
   Next

假如有多循环嵌套,退出循环还可以跳出N层循环

   For y As Long = 1 To 5
      For x As Long = 1 To 3
         If x = 3 And y = 3 Then Exit For, For '条件成立,跳出多层嵌套循环
         Print x,y
      Next
   Next

有时候,还可以根据条件,直接进入下一个循环

   For i As Long = 10 To 1 Step -1
      If i = 5 Then Continue For '条件成立,跳到循环头 For 执行
      Print i
   Next

Do..Loop 无限循环

这是无限循环,循环到天荒地老,表现为软件无反应,CPU占用高

   Dim i as long
   Do
      i += 1    '无限执行到天荒地老
   Loop

因此,我们必须搞个条件,达到条件退出循环,但你必须要预计到,条件肯定有成立的时候,不然永不成立,就变成无限循环了,执行到天荒地老

   Dim i As Long
   Do
      i += 1 
      If i > 100 Then Exit Do  '超过100就退出
   Loop

条件可以直接和 Do 结合,条件成立退出循环

   Dim i As Long
   Do Until i>10  '条件成立就10退出循环
      i += 1 
   Loop

条件可以直接和 Do 结合,条件成立,执行循环,条件不成立,退出循环

   Dim i As Long
   Do While i < 10 '条件成立执行循环,条件不成立退出循环
      i += 1
      Print i
   Loop

以上是先判断条件,还有和 Loop 结合,先循环后条件。

   Dim i As Long
   Do
      i += 1
   Loop Until i > 10 '条件成立退出循环
   Do
      i += 1
   Loop While i < 10 '条件成立执行循环,条件不成立退出循环   

本循环,也有跳过本循环语句

   Dim i As Long
   Do
      i += 1
      If i=5 Then Continue Do '跳到DO头执行
   Loop Until i > 10 '条件成立退出循环

还有,多嵌套DO循环时,退出N个 DO 循环

   Dim i As Long
   Do
      Do
         Do
            i += 1
            If i = 5 Then Exit Do, Do, Do '跳到多个do循环
         Loop
      loop
   Loop

While..Wend 条件循环

本循环和 Do While 语句一样功能,看自己喜欢用什么语句就用什么

   Dim i As Long
   While i < 5
      i+=1  
   Wend

当然该循环也有退出循环和跳到循环头的语句

Exit While       '退出循环
Continue While  '跳到循环头

子程序

当代码越写越多,就会让整体代码越难阅读和管理,我们需要有章有节,那样条理分明。

编程中的子程序(Subroutine)或函数(Function)是编程中非常重要的一部分,它们帮助你将代码分割成可管理、可重用的部分。这不仅能提高代码的可读性,还能减少代码冗余,使得程序更容易维护和修改。下面我将通过一些基本的概念和示例来介绍子程序的概念和使用。

1. 子程序的基本概念

  • 函数(Function):一个具有特定功能的代码块,可以接收输入参数,执行一系列操作,并返回一个值给调用者。
  • 子程序(Subroutine)或过程(Procedure):与函数类似,但它不返回任何值给调用者。主要用于执行一系列操作。

2. 为什么要使用子程序

  • 模块化:将复杂的问题分解为较小的、易于管理的部分。
  • 重用性:避免重复编写相同的代码。
  • 可读性:使得代码更易于理解和维护。
  • 易于调试:当出现问题时,可以更容易地定位到特定的子程序。

3. 编写子程序的基本步骤

3.1 定义子程序

  • 函数:通常包括返回类型、函数名、参数列表(可选)和函数体。
  • 子程序:包括子程序名、参数列表(可选)和子程序体。

3.2 编写子程序体

在子程序体内,你可以编写执行特定任务的代码。对于函数,你需要确保最后有一个返回语句,以返回适当类型的值。

3.3 调用子程序

在程序的其他部分,你可以通过指定子程序名(和必要的参数)来调用它。

4. 示例

Sub 我的子程序()  ’ 这是子程序头
   Print "执行子程序"
End Sub  '这是子程序尾
  我的子程序()  ‘ 直接写 子程序的名称来调用执行子程序

子程序可以设置参数,我们调用时传递参数给子程序

Sub 我的子程序(参数1 As Long ) 
   Print "执行子程序",参数1
End Sub
  我的子程序(99)

子程序可以提前结束,用 Return 直接返回

Sub 我的子程序(参数1 As Long)
   If 参数1 = 99 Then Return
   Print "执行子程序", 参数1
End Sub
  我的子程序(99)

当子程序要返回数据时,就称为“函数”,和普通子程序不同于,它会返回数据

Function 我的子程序函数() As Long 
   Return 10   
End Function
  Print 我的子程序函数()

下面我们写一个加法函数

Function 我的加法函数(aa As Long ,bb As Long ) As Long 
   Return aa+bb   
End Function
  Print 我的加法函数(5,10)

当传递的参数,在子程序中被修改,影响到调用者

Sub 我的子程序(数值参数 As Long,文字参数 As String )
   数值参数 = 100
   文字参数 ="1111" 
End Sub
Dim aa As Long=11, bb As String ="内容"
我的子程序(aa, bb)
Print aa,bb 
'打印后会发现,数值内容没变,文字内容变了,

当你需要明确,修改变量后不影响调用的变量,和一定要影响
ByRef 影响调用者
ByVal 不影响调用者

Sub 我的子程序(ByRef 数值参数 As Long,ByVal 文字参数 As String )
   数值参数 = 100
   文字参数 ="1111" 
End Sub
Dim aa As Long=11, bb As String ="内容"
我的子程序(aa, bb)
Print aa,bb 

传递数组时,必须写上 () 来表示数组,数组必然影响调用者,无法使用不影响的

Sub 我的子程序(数组参数() As Long)
   Print 数组参数(0)
End Sub
Dim aa(100) As Long
数组参数(0)=99
我的子程序(aa())

评论一下?

OωO
取消