FreeBASIC的逻辑判断机制
freebasic吧
全部回复
仅看楼主
level 11
qiaozhanrong 楼主
这个坑爹的机制整死我了。。。
if (条件一 and 条件二) then...
如果条件一为FALSE,它仍然会继续判断条件二。。。
==========================================
这说明以下程序可能会溢出:
randomize
dim as integer a(5,5),i,j
i=int(rnd*101)
j=int(rnd*101)
a(1,1)=1
if i<=5 and j<=5 and a(i,j)=1 then
print "中大奖了!!!i 和 j 都是1!!!"
end if
sleep
end
==========================================
看出来哪儿有问题了吗?
2014年11月30日 02点11分 1
level 1

2014年12月01日 11点12分 2
level 7
是你自己理解的问题,不是程序机制问题。运算符优先顺序你都没搞懂。比较运算符是优先于逻辑运算符的。所以是先执行三个比较,然后再运算逻辑
2014年12月01日 16点12分 3
我说的就是这个意思。。。
2014年12月02日 08点12分
就是说不要把计算机想的太聪明。。。
2014年12月02日 08点12分
c++有个短路(short-circuit)机制,并列条件中只要有条件可以直接定下表达式结果时后面的条件就不判断了。。。【貌似我挖坟了】
2015年05月06日 10点05分
c++有个短路(short-circuit)机制,并列条件中只要有条件可以直接定下表达式结果时后面的条件就不判断了。。。【貌似我挖坟了】
2015年05月23日 11点05分
level 1
FreeBASIC不清楚,
不过C#:
if (表达式A && 表达式B)
引用MSDN:“条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。”
(虽然是几个月前的贴……)
2015年03月28日 15点03分 4
c++有个短路(short-circuit)机制,并列条件中只要有条件可以直接定下表达式结果时后面的条件就不判断了。。。【貌似我挖坟了】
2015年05月06日 10点05分
FB可不行
2015年05月06日 10点05分
回复 qiaozhanrong :我没发现c++还有这个呢……好久没用了
2015年05月06日 10点05分
level 5
vb6也是这样
2015年04月09日 05点04分 5
c++有个短路(short-circuit)机制,并列条件中只要有条件可以直接定下表达式结果时后面的条件就不判断了。。。【貌似我挖坟了】
2015年05月06日 10点05分
@qiaozhanrong c++不好学
2015年05月06日 12点05分
@qiaozhanrong 反汇编去分析了短路机制,其实条件成立就jnz或者jz了,后面的判断直接跳过
2015年05月24日 00点05分
回复
�޻���ONE����
:但是fb没有,我做过实验
2015年05月24日 00点05分
level 1
freebasic也有短路机制,就是andalso。而不是and (and是要计算所有的条件的)。适当看一下语言参考文档,还是有必要的,不要把别的语言用法想当然套在Freebasic上,然后说Freebasic有问题,是有失公允的。
2015年05月28日 02点05分 6
我没说有问题啊
2015年05月28日 11点05分
1