Perlのswitchステートメント
テストケースは、switch文は、複数の値に等しい変数を可能にします。 各値はケースと呼ばれ、変数をチェックするために、各スイッチケースを試験します。
エグゼクティブスイッチケースは、モジュールに基づいて、スイッチ・モジュールは、 フィルターを使用しています:: Utilの::通話とテキスト::バランスを実行するように切り替え、両方のモジュールをインストールする必要があります。
文法
構文は次のとおりです。
use Switch; switch(argument){ case 1 { print "数字 1" } case "a" { print "字符串 a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case /\w+/ { print "正则匹配模式" } case qr/\w+/ { print "正则匹配模式" } case (\%hash) { print "哈希" } case (\&sub) { print "子进程" } else { print "不匹配之前的条件" } }
次は、switch文の規則であります:
- 括弧は、文がスカラーパラメータの任意のタイプで使用することができるスイッチ 。
スイッチでは、case文の数に制限はありません。 各ケースは、コロンと比較する値が続いています。
スカラーcase文、スカラー文を切り替わり、同じか否かを判断します。
テストされている変数は、case文に続いて、一定時間の場合、に等しい場合、それはbreakステートメントに遭遇するまで、実行されます。
switch文は、最終面内のステートメント、他のオプションを持つことができ、文がどのような場合に一致しない場合に実行されます。
マッチングケース、ケースステートメントブロックを実行した後にswitch文の外にコードを実行します。
ときに一致する場合、我々は次のcase文を実行するために継続する必要がある場合、あなたは次のステートメントを追加する必要があります。
フローチャート
例
#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "数字 10\n" } case "a" { print "字符串 a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case (\%hash) { print "在哈希中" } else { print "没有匹配的条件" } }
上記のプログラムは、出力は次のようになります。
数字 10
次に、次のインスタンスの使用を見てみましょう。
#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "数字 10\n"; next; } # 匹配后继续执行 case "a" { print "string a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case (\%hash) { print "在哈希中" } else { print "没有匹配的条件" } }
上記のプログラムは、出力は次のようになります。
数字 10 数字在列表中