回 帖 发 新 帖 刷新版面

主题:=是等号还是赋值号?

c=b=a
print c
end
结果是-1
请高手解释一下?
按qb的规定,这两个语句语法对吗?
1.a>b=2
2.a=b<2

回复列表 (共4个回复)

沙发

c=b=a这种东西要看编译器是左结合还是右结合编译,讨论它没什么意义

板凳

我记得曾经有一个高人说过:
“老师说了,加多几个括号肯定不会有错”
是不是你说的?

3 楼

这是学生书里的一道题目,我觉得都对,但答案只有一个

4 楼

如果是赋值语句的话,比如:
c=b=a=e
这个式子中,第一个等号是赋值符号,之后的等号是判断大小关系的比较运算符号
之后的比较运算符号的运算顺序是从左到右比较的
先比较b,a   得值再与e比较  得值赋予c

举例: c=1=1=1
相当于 c=((1=1)=1)
       c=(-1=1)
       c=0

如果不是赋值语句,只是一个表达式,
也是就相当于上例中赋值等号后面的表达式一样,
从左到右的顺序去比较判断大小关系而已。
如:
print 1>0>-0.5
从左到右去做比较运算,得 -1>-0.5 得 0 假值。

其实ryowu说得对,这个需要看具体的编译器的运算顺序方向的
特别是C编译器,不同的编译器的差别就表现在这里了
但对QB编译器来说,一般都是从左到右的了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册