高手进!VB问题

Dim a, b As Long
a = 0
b = a - (a = 0)
MsgBox(b)

b = a - (a = 0) ‘这个算成立吗?
b = a + (a = 0)
以上两个式子为什么成立,为什么?

b = a + (a = 0)
当A=0时 B=-1 '这-1是什么得来的?
当A<>0时 B=A '这又是怎么得来的?
请问一下这原理是什么?

b=a+(a=0)
()里面的A=0为什么是当作逻辑运算?

那 b=a+a=0 这又怎么算?

首先,VB里的true默认的值为-1,false的值默认为0
VB会把a=0当作逻辑运算,而不是赋值运算(其他语言一般把==作为逻辑运算,=作为赋值)
弄清楚这一点之后,这些代码就好理解了:
当a=0时
b = a + (a = 0)这条表达式的实际意义是b = a + true
之前提到true的值默认为+1,所以b = 0-1=-1
返回的就是-1了

当a=1时
b = a + (a = 0)这条表达式的实际意义是b = a + false
之前提到false的值默认为0,所以b = 1 + 0 =1
返回的就是A的值了

==========================================================
有什么不懂的请补充

===================
补充:
为什么当作逻辑运算?因为VB不允许在表达式中赋值,所以当作逻辑运算
b=a+a=0
当a=0时
实际为b=(0+0=0)
由于赋值的优先级最高所以b=不在运算范围,0+0作为数学运算,优先级比逻辑运算=0高
所以运算过程为0+0,判断=0,赋值给b
即b=(false+false)=false(返回true)

当a=1时
实际为b=(1+1=0)
理由同上
即b=(true+true)=false(返回false)
================================================
有问题继续补充
================================================
补充:
逻辑运算你应该会吧。。
不会的话可以看下面部分:
补充1的结构解释

false+false,两个都是假,自然返回假,然后false=false,一样,所以返回真

true+true,两个都是真,返回真
然后true=false,这当然不成立,返回假
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-27
你直接放程序里运行下不就知道了。这样是成立的啊。b = a - (a = 0) 这个的结果是b=1为什么呢,因为b=0-(0=0)这里0=0是true转换过来就是-1所以呢b=0--1就等于1了。
剩下的一个应该不用我解释为什么了吧
第2个回答  2010-11-27
当然成立,为什么不成立?
接照数学运算逻辑顺序,等号优先级低于+ - * / 所以用小括号括起来。

vb的小问题。高手请进
要解决VB的小问题,首先在菜单中找到“工程\/引用\/Microsoft Script Control 1。0”,确保前面有勾,然后点击OK,你将获得满意的答案,并且得到高分。在代码中,我们定义了几个变量。`Dim objScript As New ScriptControl` 创建了一个新的ScriptControl对象。`a As Double, x As Double, y As String`...

vb 高手请进,加载问题
原因可能有两种:1、另一台电脑没有安装VB程序,可能缺少程序执行需要的库文件,你可以先将程序打成安装包,再复制到另一台电脑,安装后就可以运行了。2、另一台电脑安装了VB程序,但编写的程序中需要加载某些文件,而这台电脑没有对应的文件,你只需要将加载的文件(路径也要一致)复制到另一台电脑。

高手进!VB问题
首先,VB里的true默认的值为-1,false的值默认为0 VB会把a=0当作逻辑运算,而不是赋值运算(其他语言一般把==作为逻辑运算,=作为赋值)弄清楚这一点之后,这些代码就好理解了:当a=0时 b = a + (a = 0)这条表达式的实际意义是b = a + true 之前提到true的值默认为+1,所以b = 0-1=...

VB6.0的几个问题!高手请进!
没条件意味着出错,要不就是死循环,在这他只意味着运行一次 问题二 CLng 函数总是将其四舍五入为最接近该数的偶数 如, 0.5 四舍五入为 0

一道vb 题目 请高手解答
本文提供了一段VB代码,用于解决特定问题。代码采用了直接方法,即逐数检查,筛选出符合条件的数字对,并在主函数Form_Load中进行调用。通过将结果存储在变量result中,最终通过MsgBox展示。代码的核心在于检查数字对中的重复性,通过定义函数noRepeated来实现。在noRepeated函数中,我们首先初始化一个布尔变量...

VB编程问题,高手进来看看
管道通信问题,调用API函数可解决。PeekNamePipe ReadFile CloseHandle GetStdHandle 这四个即可

VB高手请进!生成的EXE文件 总是用不了 出现:run-time error 3709...
你可以msdn一下 VB有两个DLL文件 是支持库 你拷到你exe目录下就好了

vb高手请进(有高分)
我试验过了,你把For n = 1 To 6改成For n = 1 To 1000,然后下面加上一局C=0,则会打印出6,28,496这三个数字了 问题解决了,最后看你能加多少高分咯~最后再提醒下,记得把你的form的autoredraw属性设置成true,否则无法在屏幕打印的,你就看不到结果了 ...

有关VB变量常量练习题!!高手进!!
一.选择题 1.以下不合法的常量是[D ]。(A) 10^2 (B)100 (C) 100.0 (D) 10E+01 2.Visual Basic允许的常量有[ C ]。(A) E7 (B) 4.8E2 (C) 2.5*10 (D) E-5 3.常量 -0.00013579的科学计数法是[ D ]。(多选)(A) -1,3579E+0.4 (B) 1...

VB高手请进,一些基础题,实在不知道求答案!
1.在Visual Basic 中可以建立下拉式菜单和__右键_菜单。2.在文件对话框中,FileName属性与FileTitle属性是有区别的,假定有一个名为“Js.txt”的文件,位于“C:\\teacher"目录下,则FileTitle属性的值为___文本文件___,FileName属性的值为__JS.txt__。3.假定有一个通用对话框 CommonDialog1,...

相似回答
大家正在搜