If语句

2020-07-28 10:11:50 浏览数 (2)

每种编程语言都会有自己规则的语句,大多都大同小异,今天学习这种最普通的If语句。

前面我们说过,想快速查看帮助文件,可以用鼠标定位到关键字的单词内部,按F1。你可以在VBA编辑器里写上If,然后鼠标定位到I后面,按F1,就可以看到官方的帮助文件了。

我们还是以具体例子来看:

代码语言:javascript复制
Sub TestIF()
    '一行,Then后面只能是1个语句(可以用“:”连接多个,但不建议)
    If Range("A1").Value Mod 2 = 1 Then Range("B1").Value = "奇数"
    If Range("A2").Value Mod 2 = 0 Then Range("B2").Value = "偶数"
    
    '这种模式,If和End If之间可以写多行
    If Range("A3").Value Mod 2 = 1 Then
        Range("B3").Value = "奇数"
    End If
        
    If Range("A4").Value Mod 2 = 0 Then
        Range("B4").Value = "偶数"
    End If
    
    'Else下面代表If语句返回False执行的语句
    If Range("A5").Value Mod 2 = 0 Then
        Range("B5").Value = "偶数"
    Else
        Range("B5").Value = "奇数"
    End If
End Sub

A1-A5有一些数字,我们通过If语句来判断他的奇偶,举了3种写法的例子。

其中Mod是内置的取余数函数,Range("A1").Value Mod 2的意思就是,对Range("A1").Value也就是7,取2的余数,我们知道结果就是1。

后面跟着的“= 1”的等号,我们在第一个程序里也碰到了:

代码语言:javascript复制
Range("A1").Value = "hello Excel VBA"

上面这个“=”,因为左边是单元格的Value属性,而且是简单的单独语句,是一种赋值的意思,就是把后面的字符串赋值给Range("A1").Value。

而现在这里的“Range("A1").Value Mod 2 = 1”因为是跟在If后面的,它是一种判断,也就相当于是“Range("A1").Value Mod 2”得到的值,是否等于1,这2种方式是不一样的。

  • 一种是赋值
  • 一种是判断是否相等,是一种比较,会返回true或者false的Boolean值

If后面返回true,就是执行Then后面的语句,否则就会执行Else后面的语句,如果没有Else就不会执行(图中的第4个数字5,后面就是没有执行)。

If语句里面还可以嵌套If:

代码语言:javascript复制
    If Range("A5").Value Mod 2 = 0 Then
        If Range("A5").Value > 5 Then
            Range("B5").Value = "大于5的偶数"
        Else
            Range("B5").Value = "小于5的偶数"
        End If
    Else
        Range("B5").Value = "奇数"
    End If

这种嵌套还有其他Else If ... Then等形式,具体可以研究研究官方的帮助文档,别忘记那个F1查看的方法。

延伸一下比较符:

这里的“>",代表的意思就是前面的数字是否大于后面的数字,和上面的”=“一样,也是一种比较符,这样的符号还有:

  • < 小于
  • >= 大于或者等于
  • <= 小于或者等于
  • <> 不等于

这些比较符都是前后2个数才能进行的:

代码语言:javascript复制
a 比较符号 b

这种模式得到的结果,只能是跟在If后面,或者赋值给其他变量,单独是不能使用的。

这种通过简单的语句的嵌套,可以构建出非常复杂的逻辑关系,只要你的头脑能够理清楚,而电脑适合做的就是这种严格执行语句,无论是多少无聊枯燥的、还是多么烧脑的逻辑,对电脑来说都一样。

小结

If语句是编程语言非常基础、也是非常必要的一种(好像没有什么语言没有这个吧),写程序会大量使用到这个,而且这个用起来应该来说还是比较简单的。

0 人点赞