实例2-12 逻辑运算符
该实例实现步骤如下。
1 创建窗体
在本章的项目chapter2中,右键单击解决方案资源管理器中项目名下面对应节的文件夹“运算符”,在弹出菜单中选择“添加”→“Windows窗体”菜单命令,在弹出的对话框中输入窗体名LogicFrm,单击“添加”按钮完成窗体的创建。
2 添加控件
向窗体中添加9个Textbox控件用于输入和显示相应的信息。
添加三个Label控件用于显示相关说明。
添加4个Button控件到窗体上,用于实现相应运算符的逻辑运算。
3 添加代码
双击窗体转到代码编辑器添加代码2-16中的代码,这里只显示了三个整数的部分逻辑运算,其他的读者可参考代码自行完成。
代码2-16 LogicFrm.vb
01 Dim a As Integer 02 Dim b As Integer 03 Dim c As Integer 04 Dim vr As Boolean '定义一个布尔类型变量,用于返回逻辑运算的结果 05 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '“And”按钮单击事件 06 a = Me.TextBox1.Text '将用户在textbox1中输入的值赋给变量a 07 b = Me.TextBox2.Text '将用户在textbox2中输入的值赋给变量b 08 c = Me.TextBox3.Text '将用户在textbox3中输入的值赋给变量c 09 vr = a > b And b > c '逻辑与运算 10 '在textbox4中显示“a > b And b > c”表达式 11 Me.TextBox4.Text = CStr(a) & ">" & CStr(b) & " And " & CStr(b) + ">" & CStr(c) 12 Me.TextBox5.Text = vr '显示表达式的结果 13 vr = a > b And b < c 14 Me.TextBox6.Text = CStr(a) & ">" & CStr(b) & " And " & CStr(b) & "<" & CStr(c) 15 Me.TextBox7.Text = vr 16 vr = a < b And b < c 17 Me.TextBox8.Text = CStr(a) & "<" & CStr(b) & " And " & CStr(b) & "<" & CStr(c) 18 Me.TextBox9.Text = vr 19 End Sub 20 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click '“Or”按钮单击事件 21 a = Me.TextBox1.Text 22 b = Me.TextBox2.Text 23 c = Me.TextBox3.Text 24 vr = a > b Or b > c 25 Me.TextBox4.Text = CStr(a) & ">" & CStr(b) & " Or " & CStr(b) + ">" & CStr(c) 26 Me.TextBox5.Text = vr 27 vr = a > b Or b < c 28 Me.TextBox6.Text = CStr(a) & ">" & CStr(b) & " Or " & CStr(b) & "<" & CStr(c) 29 Me.TextBox7.Text = vr 30 vr = a < b Or b < c 31 Me.TextBox8.Text = CStr(a) & "<" & CStr(b) & " Or " & CStr(b) & "<" & CStr(c) 32 Me.TextBox9.Text = vr 33 End Sub 34 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click '“Not”按钮单击事件 35 a = Me.TextBox1.Text 36 b = Me.TextBox2.Text 37 c = Me.TextBox3.Text 38 vr = Not (a > b) 39 Me.TextBox4.Text = "Not" & "(" & CStr(a) & ">" & CStr(b) & " ) " 40 Me.TextBox5.Text = vr 41 vr = Not (a < b) 42 Me.TextBox6.Text = "Not" & "(" & CStr(a) & "<" & CStr(b) & " ) " 43 Me.TextBox7.Text = vr 44 vr = Not (b > c) 45 Me.TextBox8.Text = "Not" & "(" & CStr(b) & ">" & CStr(c) & " ) " 46 Me.TextBox9.Text = vr 47 End Sub 48 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click '“Xor”按钮单击事件 49 a = Me.TextBox1.Text 50 b = Me.TextBox2.Text 51 c = Me.TextBox3.Text 52 vr = a > b Xor b > c 53 Me.TextBox4.Text = CStr(a) & ">" & CStr(b) & " Xor " & CStr(b) + ">" & CStr(c) 54 Me.TextBox5.Text = vr 55 vr = a > b Xor b < c 56 Me.TextBox6.Text = CStr(a) & ">" & CStr(b) & " Xor " & CStr(b) & "<" & CStr(c) 57 Me.TextBox7.Text = vr 58 vr = a < b Xor b < c 59 Me.TextBox8.Text = CStr(a) & "<" & CStr(b) & " Xor " & CStr(b) & "<" & CStr(c) 60 Me.TextBox9.Text = vr 61 End Sub
代码2-16的执行步骤如下:
① 用户在三个文本框中分别输入三个整数,单击4个按钮中的一个执行相应运算符的逻辑运算;
② 第5行到第19行代码是“And”按钮的单击事件,实现逻辑与运算,并将表达式和结果显示在窗体上;
③ 第20行到第33行代码是“Or”按钮的单击事件,实现逻辑或运算,并将表达式和结果显示在窗体上;
④ 第34 行到第47 行代码是“Not”按钮的单击事件,实现逻辑非运算,并将表达式和结果显示在窗体上;
⑤ 第48 行到第61 行代码是“Xor”按钮的单击事件,实现逻辑异或运算,并将表达式和结果显示在窗体上。
4 运行结果
按F5键,运行程序,结果如图2-18所示,图中显示的信息是单击“Or”按钮所得的结果。
图2-18 实例2-12运行结果
位运算符如表2-10所示。
表2-10 位运算符
2.3.6 运算符的优先级
在每个表达式进行运算时,每一部分的运算都要按照一定的顺序进行计算,这个顺序就是运算的优先顺序,也叫运算符的优先级,表达式运算按照下列规则计算。
(1)运算符运算从左到右进行;
(2)算术运算符总是首先计算,然后是比较运算符,最后是逻辑运算符;
(3)比较运算符都有相同的优先级;
(4)使用括号来改变优先顺序,强制命令表达式中的某些部分优先执行,括号里的表达式先计算,括号外的表达式后计算;
(5)连接(&)运算符优先级在所有算术运算符之后,所有比较运算符之前。
表2-11列出了各运算符的优先顺序。
表2-11 运算符的优先级
显然,字符串连接运算符的其中一个(&)不是算术运算符,但就优先级而言,它排在所有算术运算符之后,以及所有比较运算符之前。