3

オペレーターは指示に対して何を評価しますか?

お気に入り:

var flag:Boolean=true;
flag && trace("1") && trace("2") && trace("3");

出力:1 2 3

var flag:Boolean=true;
flag && trace("1") || trace("2") || trace("3");

出力1

or演算子は、idkの下でどのような状況で文を壊しますか...

編集:わかりました。これで、文が演算子でどのように機能するかがわかりますが、戻り値がtrueと評価されていない命令はありますか?

そして、次のように、必要な命令を評価できないようです。

private function any():void{
true && return;
}

コンパイルエラーがスローされます。

編集:この場合、2番目の例とは異なる動作をします。

true && one() || two() || three();

機能

private function one():void{
    trace("1");
}
private function two():void{
    trace("2");
}
private function three():void{
    trace("3");
}

出力:1 2 3

編集:値の割り当て:

var a:int;
(a=1) || trace("1");
(a=2) && trace("2");

出力:2

編集: ||trueまたはtrueに変換できる場合はexpression1を返し、それ以外の場合はexpression2を返します

&&「falseまたはfalseに変換できる場合はexpression1を返し、それ以外の場合はexpression2を返します。falseに変換できる値の例は、0、NaN、null、およびundefinedです」。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html#logical_OR

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/operators.html#logical_AND

4

2 に答える 2

6

これは短絡評価と呼ばれます。基本的に、および/または式の評価は、その結果が確実に決定できるときに停止されます。

たとえば、評価と(&&)評価を、最初のfalseが見つかった時点で停止できる場合です。false && true && true && true...最後に追加する真の値の数に関係なく、は常にfalseです。orとtrue-valueについても同じことが言えます。

于 2012-11-02T21:22:06.007 に答える
5

ActionScript 3はECMAScriptバリアントです。つまり、JavaScriptと同じ標準に基づいています。

このため、他のCスタイルの言語&&とは異なります。||

a || baが真実である場合はを返しa、そうでない場合はを返しますb

a && bafalseの場合はを返しa、そうでない場合はを返しますb

これにより、||本質的にはと同等にa ? a : bなり、&&本質的にはと同等になり!a ? a : bます。

また、短絡評価メカニズムも備えています。最初の引数が返される場合、2番目の引数は実行されません。

于 2012-11-02T21:24:19.797 に答える