这是我的代码:
for($i=1;$i<=100;$i++){
if($i%15==0) print "Divisible by 15";
else if($i%5==0) print "Divisible by 5";
else print ($i%3==0)? "Divisible by 3":$i;
print "\n";
}
这是一个非常简单的代码。我使用Java工作,虽然它在Perl中出错。错误是:
syntax error at line 2, near ") print"
Execution aborted due to compilation errors.
我是Perl的新手。我怎样才能让它发挥作用?
答案 0 :(得分:7)
试试这个版本:
for($i=1;$i<=100;$i++){
if ($i%15==0) { print "Divisible by 15" }
elsif($i%5==0) { print "Divisible by 5" }
else { print +($i%3==0)? "Divisible by 3":$i; }
print "\n";
}
您需要在if语句的部分周围添加大括号,并使用elsif
代替else if
。
如果+
语句中没有print
,perl会将语句解析为:
print(...) ? "Divisible by 3" : $i;
即。它将使用print
返回的值作为三元运算符的第一个参数。另一个解决方案是写:
else { print( $i % 3 == 0 ? "..." : $i ) }