-1

これが私のコードです:

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";
} 

とてもシンプルなコードです。Perl ではエラーが発生しますが、Java では動作します。エラーは次のとおりです。

syntax error at line 2, near ") print"
Execution aborted due to compilation errors.

私はPerlが初めてです。どうすれば機能しますか?

4

1 に答える 1

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 ステートメントの then 部分を中括弧で囲み、elsif代わりにを使用する必要がありelse ifます。

+ステートメントにがないprint場合、perl はステートメントを次のように解析します。

print(...)  ?  "Divisible by 3"  :  $i;

すなわち。によって返された値printを三項演算子の最初の引数として使用します。別の解決策は、次のように書くことです。

    else { print( $i % 3 == 0 ? "..." : $i ) }
于 2013-02-01T16:31:11.710 に答える