条件演算子と代替シンタックスについて

ショートカットが必要な場合は、条件 (?:) 演算子を使用できます。これは、"条件式" とも呼ばれます。条件演算子を使用すると簡単な if..else ステートメントを 1 行のコードに書き換えることができます。この演算子を使用すると、同じ処理を実行するために書くコードの量を減らすことができますが、ActionScript が読みにくくなります。

次の条件は、通常の方法で記述されたものです。この条件は変数 numTwo がゼロより大きいかどうかをチェックし、numOne/numTwo の結果またはストリング carrot を返します。

var numOne:Number = 8;
var numTwo:Number = 5;
if (numTwo > 0) {
  trace(numOne / numTwo); // 1.6
} else {
  trace("carrot");
}

条件式を使用すると、次のフォーマットを使用して同じコードを記述することができます。

var numOne:Number = 8;
var numTwo:Number = 0;
trace((numTwo > 0) ? numOne/numTwo : "carrot");

このように、簡易シンタックスは読みにくくなるので、お勧めできません。条件演算子を使用する必要がある場合は、先頭の条件 (疑問符 [?] の前の条件) をカッコで囲むようにしてください。これで ActionScript の読みやすさが向上します。次のコードは、読みやすさを向上した ActionScript の例です。

var numOne:Number;
(numOne >= 5) ? numOne : -numOne;

ブール値を返す条件ステートメントは、次のような形式で書くことができます。

if (cartArr.length > 0) {
  return true;
} else {
  return false;
}

しかし、この例のような書き方よりも、次の形式が推奨されています。

return (cartArr.length > 0);

2 番目の例の方が簡潔で、評価する式も少なくて済みます。また、読みやすさが向上し、理解しやすくなります。

複雑な条件を書くときは、カッコ [()] を使用して条件をグループ化することをお勧めします。カッコを使用しないと、自分やこの ActionScript を使用する他の人が演算子の優先順位を間違えることも考えられます。演算子の優先順位の詳細については、演算子の優先順位と結合性についてを参照してください。

たとえば、次のコードは条件を囲むカッコを使用していません。

if (fruit == "apple" && veggie == "leek") {}

次のように条件をカッコで囲む方が適切です。

if ((fruit == "apple") && (veggie == "leek")) {}

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000708.html