switch文

言語によってswitch文の書き方がちがくて使いにくい。
忘れるとアレなのでメモ。

intとかめんどいので必要部分のみ
複数caseを用いた場合の話。

// C言語
switch(cmd) {
case 1:
case 2:
printf(“1 or 2\n”); break;
default:
printf(“not 1 or 2\n”); break;
}

// perl 5.8.0~
use Switch;
switch($cmd) {
case (sub {  ($cmd eq “1”) || ($cmd eq “2”)  } ); {
print “1 or 2\n”;
}
else {
print “not 1 or 2\n”;
}

// Perl 5.10.0~ or Perl6
use feature ‘switch’; #5.10でperl6の機能を使うためのfeature
use switch; #perl6 この書き方は正確じゃないかも
given ($cmd) {
when (“1” || “2”) {
print “1 or 2\n”;
}
default {
print “not 1 or 2\n”;
}

perl 5.8.0~switch文が標準で使えるようになったので試したら複数caseな書き方はダメみたい
perl 6でgiven whenというswitch文と同じような機能が実装されるのでそれなら大丈夫っぽい

perl5でswitch文を使って複数caseを書くのはまだ不便っぽい
従来どおりSWITCH:を使った似非switch文かif-elsifでどうにかしたほうがいいっぽい?

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください