条件演算

ActionScript 3.0 は、プログラムフローの制御に使用できる 3 つの基本的な条件ステートメントを提供します。

サブトピック

if..else
if..else if
switch

if..else

if..else 条件ステートメントを使用して、条件をテストし、その条件が存在する場合はコードブロックを実行し、その条件が存在しない場合は代わりのコードブロックを実行します。たとえば、次のコードは x の値が 20 を超えるかどうかをテストし、超える場合は trace() 関数を生成し、超えない場合は異なる trace() 関数を生成します。

if (x > 20)
{
    trace("x is > 20");
}
else
{
    trace("x is <= 20");
}

代わりのコードブロックを実行しない場合は、else ステートメントなしで if ステートメントを使用することができます。

if..else if

if..else if 条件ステートメントを使用して複数の条件をテストできます。たとえば、次のコードは、x の値が 20 を超えるかどうかをテストすると共に、x が負の値かどうかをテストします。

if (x > 20)
{
    trace("x is > 20");
}
else if (x < 0)
{
    trace("x is negative");
}

if または else ステートメントに続くステートメントが 1 つだけの場合は、ステートメントを中括弧で囲む必要はありません。たとえば、次のコードは中括弧を使用していません。

if (x > 0)
    trace("x is positive");
else if (x < 0) 
    trace("x is negative");
else
    trace("x is 0");

ただし、後で中括弧のない条件ステートメントがステートメントに追加された場合に予期しない動作を引き起こす可能性があるため、常に中括弧を使用することをお勧めします。たとえば、次のコードで positiveNums の値は、条件が true と評価されるかどうかに関係なく 1 増加します。

var x:int;
var positiveNums:int = 0;

if (x > 0)
    trace("x is positive");
    positiveNums++;

trace(positiveNums); // 1

switch

switch ステートメントは、同じ条件式に依存する複数の実行パスが存在する場合に便利です。一連の if..else if ステートメントに似た機能ですが、多少読みやすくなっています。switch ステートメントは、ブール値の条件をテストするのではなく、式を評価し、その結果を使用して実行するコードブロックを決定します。コードブロックは、case ステートメントで始まり、break ステートメントで終わります。たとえば、次の switch ステートメントは、Date.getDay() メソッドによって返された日数に基づいて曜日を出力します。

var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{
    case 0:
        trace("Sunday");
        break;
    case 1:
        trace("Monday");
        break;
    case 2:
        trace("Tuesday");
        break;
    case 3:
        trace("Wednesday");
        break;
    case 4:
        trace("Thursday");
        break;
    case 5:
        trace("Friday");
        break;
    case 6:
        trace("Saturday");
        break;
    default:
        trace("Out of range");
        break;
}

 

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

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