?:;


三項演算子(?:;)

書式

A?B:C;

解説

式Aを計算し、真ならばBを変えし、偽ならばCを返す。

用例

A = 1 '入力を得てもいい'
B = (A)?"YES!":"NO!";
text( B, 10, 10, 0 );

実行結果 >> YES!

if文との速度は?

SPALMスレの820より抜粋。( 820氏thx! )
820 名前:非通知さん@アプリ起動中[sage] 投稿日:2009/11/29(日) 00:07:20 ID:Uxog1i4GO

t=tick
for(i=0;i<1000;i++){
p--
if(rand%2){p++}else{p++}
}
msgdlg(0,tick-t)

t=tick
for(i=0;i<1000;i++){
p--
(rand%2)?p++:p++;
}
msgdlg(0,tick-t)

を実行してみた。数字が小さい=速い
結果、
上は3500前後、下は3200前後
(W61Pでless1.03)
よって三項演算子のほうが良さげ。
それと、上のソースに不思議な所があると思うけど、消して実行してみると分かる
現行のSPALMだと三項演算子の方が速いみたいだ。

参考

if