Perl 三目操作符

maxio-yu 发布于 2014/06/12 17:24
阅读 1K+
收藏 0
#!/depot/qsc/QSCI/bin/perl


my $number = int(1 + rand(100));
while(<>) {
    $_ > $number ? print "too high\n" :$_ < $number ?  print "too low\n" : (print "Bingo!!!!!!!!!\n" && last);
}


这段程序,为什么猜中数字的时候看不到bingo的输出?

加载中
0
freesnow
freesnow

 (print "Bingo!!!!!!!!!\n" && last)相当于 print ("Bingo!!!!!!!!!\n" && last),也就是先求值"Bingo!!!!!!!!!\n" && last,再打印,但是求表达式last的值时就退出当前循环了,所以print没有执行。


maxio-yu
maxio-yu
谢谢,改成(print "Bingo!\n") && last; 就正常了~
返回顶部
顶部