+ -
当前位置:首页 → 问答吧 → 新人求教---逻辑操作符的使用

新人求教---逻辑操作符的使用

时间:2010-09-19

来源:互联网

大家好。新人正在初学Perl,在逻辑操作符的学习中有下面的疑惑。

$m=1;
$n=2;
if  ( ( $m < $n ) && ( $m=$n ) ) {
print $m; } else {
        print "It's incorrect.\n"        ;
        }

当程序运行结束时, m值被赋予为2.
我不明白的是,为什么不是运行else中的结果。
在if判断中,左边的值判断为真,右边应该不为真。所以应该调质else 运行,在这里为何进行了部分求值操作,将n的值赋予给了m。

我的疑问是:
1. 在何种情况是部分求值,何种情况是两边进行依次判断?
2. 如果希望是两边进行判断,应该如何写这段代码? (例如本题中,希望运行的是输出“It's incorrect”)

谢谢。

作者: justagain   发布时间: 2010-09-19

回复 justagain


   
&& || 都是短路操作符

如果&&左边的值为假,就不计算后边的值。
如果||左边的值为假,就要计算右边的值。

作者: gaochong   发布时间: 2010-09-19



QUOTE:
回复  justagain


   
&& || 都是短路操作符

如果&&左边的值为假,就不计算后边的值。
如果||左 ...
gaochong 发表于 2010-09-19 10:01




如果&&左边为真呢? 那么会进行右边的计算? 还是?
在这,应该是进行$m和$n的大小判断? 还是将n的值赋值给m?

作者: justagain   发布时间: 2010-09-19

$m=$n永远为真。。。

作者: yybmsrs   发布时间: 2010-09-19

==判断,=赋值

作者: shaneqi   发布时间: 2010-09-19

&pid回复 5# shaneqi


    谢谢了,杯具,这个都看错了…………


谢谢几位帮忙指点哦

作者: justagain   发布时间: 2010-09-19



QUOTE:
如果&&左边为真呢? 那么会进行右边的计算? 还是?
在这,应该是进行$m和$n的大小判断? 还是将n的 ...
justagain 发表于 2010-09-19 10:16




    &&左边为真,也会进行右边的计算啊。

作者: gaochong   发布时间: 2010-09-19