3

Luaでは、次のことができます。

foo = a and b or c and d or e

これは同等です(少なくとも私はそれが同等であるとかなり確信しています):

local foo = nil
if a then
foo = b
elseif c then
foo = d
else
foo = e
end

C ++でこれと同等または類似したものはありますか?

4

5 に答える 5

6

私はこれがあなたが望むものだと思います:

foo = a ? b : (c ? d : e );
于 2012-05-26T09:53:46.370 に答える
5

三項演算子があります。優先順位がおかしいので、常に括弧で囲むことをお勧めします。

bool foo = ( a ? b : ( c ? d : e ) )

これは、、、およびが同じタイプに縮小できる場合bにのみ機能することに注意してください。が、であり、がである場合、結果は常ににキャストされます。deadoubledfloateintdouble

于 2012-05-26T09:53:42.410 に答える
2

三項演算子を使用できます?:

foo = a ? b : c ? d : e;
于 2012-05-26T09:53:29.040 に答える
1

あまり。これがLuaで機能する主な理由は、動的型付けが原因です。C++では、実際に機能させることはできません。最も近いのは三項演算子ですが、srsの制限があります。

于 2012-05-26T09:56:46.463 に答える
-3

CまたはC++forandthenを使用&&し、forまたはelseを使用します||

条件式?:に三項を使用する

于 2012-05-26T09:53:36.930 に答える